2017-08-14 25 views
1

我是新來的Python所以請考慮到這一點在這裏..在url刮痧網站,我的名字吧,不正確的結果

我試圖寫一個腳本,將得到一個搜索URL特定網站,並返回一個是或否,如果我的名字是在搜索結果中。

到目前爲止,我相信,我的名字包含在網址本身導致我的if語句被標記。我已經混淆了我的名字,那些值本身就不會導致結果。但是,知道結果將爲零,腳本直到返回「是」。

from bs4 import BeautifulSoup 
import re 
import requests 

thesite = "http://www.peoplefinder.com/people-search/MT-Fname-Lname/" 
response = requests.get(thesite) 
soup = BeautifulSoup(response.text, 'html.parser') 
test = soup.findAll(text=re.compile('Fname Lname')) 
r = requests.get('http://www.peoplefinder.com/people-search/MT- 
Fname Lname') 
if 'Fname Lname' in r.text: 
    print('Yes') 
else: 
    print('No') 

回答

0

這不會是完全簡單的。但是,我可以帶你一部分的方式。

我在蒙大拿尋找一個不存在的名字,並發現Millicent Harcourt填補了賬單。我這樣做是因爲這個網站的結果頁面總是聲稱找到了一些匹配。我需要查看結果頁面失敗時的結果頁面,以便我可以解析失敗的頁面。

在此代碼中,我加載Millicent的結果並查找以「匹配」形式提供的名稱。

>>> import requests 
>>> import bs4 
>>> page = requests.get('https://www.ussearch.com/search/people/Millicent/~/Harcourt/MT').content 
>>> soup = bs4.BeautifulSoup(page, 'lxml') 
>>> links = soup.select('.memberTeaserName a') 
>>> for link in links: 
...  link.text.strip() 
... 
'Michael Frank Harcourt' 
'Michael C Harcourt' 
'Maryjean Harcourt' 
'Mary L Harcourt' 
'Mandy Harcourt' 

對於我們來說,作爲人類,除了姓氏之外,沒有任何東西與衆不同。如果你不能確定你自己的滿意度是否與Millicent Harcourt相同,那麼這將是另一個SO問題的一個很好的主題。

+0

我會upvoted你的回覆內容和你選擇的名稱,如果我可以:) 所以,我很幸運的peoplefinder.com網站在面對我的名字返回零結果。這很奇怪,因爲大多數人不會。我使用本教程/腳本作爲跳板,以最終將結果(無論是確切的名稱還是變體的形式)傳遞給CSV,然後再進行深入分析或手動檢查。 – Skeer

+0

@Skeer:你可能不知道,儘管你還沒有得到答案,但你可以將其標記爲已接受,如果確實對你有幫助。您可以用這種方式只標記一個問題的答案。 –

0

會發生什麼事是你在r.text搜索的名稱,似乎無論如何 - 它總是會在結果頁面的標題返回:

<title>Mt Fname Lname on PeopleFinder.com | Free People Search with Addresses and Phone Numbers</title> 

即使人沒有按」不存在。你需要找到其他的東西來搜索,更具體。你需要找到一個更獨特的html元素。

+1

不知何故,將搜索範圍縮小到HTML代碼中的特定類/ div對象? – Skeer