使用urllib2和BeautifulSoup不接收我在浏览器中查看的数据

时间:2014-02-04 15:27:17

标签: python beautifulsoup urllib2

我正试图抓一个网站:

http://www.gabar.org/membersearchresults.cfm?start=26&id=E640EC74-9C8E-9913-79DB5D9C376528C0

我知道上面的链接会显示没有搜索结果,但是当我手动搜索时会有搜索结果。

我遇到的问题是,当我在浏览器中打开此链接时,我能够按预期看到一个页面,但是当我在美丽的汤中打开输出时,我得到的内容是这个搜索不可用。

我是新手,所以不太确定这是如何工作的,网站是否有内置的东西,这样的东西(urllib2 / beautifulsoup)不起作用?

File = urllib2.urlopen("http://www.gabar.org/membersearchresults.cfm?start=26&id=E640EC74-9C8E-9913-79DB5D9C376528C0")

Html = File.read()
File.close()

soup = BeautifulSoup(Html)
AllLinks = soup.find_all("a")

lawyerlinks = []

for link in soup.find_all("a"):
    lawyerlinks.append(link.get('href'))

lawyerlinks = lawyerlinks[76:100]

print lawyerlinks

1 个答案:

答案 0 :(得分:3)

那很有意思。转到first page of results工作,然后单击“下一步”工作,它所做的只是将您带到您发布的URL。但是如果我直接访问该网址,我就没有结果。

请注意urllib2.urlopen的确与此处的浏览器完全相同。如果您直接在该页面上打开浏览器,则无法获得任何结果 - 这正是您使用urlopen获得的结果。

您要做的是模仿浏览器,访问结果的第一页,然后像浏览器一样模仿“下一步”。我知道的最好的库是mechanize

import mechanize
br = mechanize.Browser()
br.open("http://www.gabar.org/membersearchresults.cfm?id=ED162783-9C8E-9913-79DBE86CBE9FB115")
response1 = br.follow_link(text_regex=r"Next", nr=0)
Html = response1.read()

#rest is the same