我怎样才能在工作时间刮掉美国银行?

时间:2013-01-18 18:25:31

标签: python web-scraping screen-scraping beautifulsoup

您好,我想知道如何使用beautifulsoup刮掉美国银行的时间。 例如,如果网址是 (Shattuck_Ave_94704_BERKELEY_CA / bank_branch_locations /“> HTTP://locators.bankofamerica.com/locator/locator/2129_ 沙特克 _Ave_94704_BERKELEY_CA / bank_branch_locations /) 我怎么才能提取小时数? 以下是我最初的尝试,但它似乎什么也没有返回。

page = urllib2.urlopen(url)
soup = BeautifulSoup(page.read())
hours = soup.find_all("div", class_="lobbyHours")
print hours

1 个答案:

答案 0 :(得分:4)

该网址重定向,这就是为什么soup.find_all("div", class_="lobbyHours")不返回任何内容的原因。您要重定向到的页面上没有div个类。

通过使用Firefox的Firebug监控网络流量,我发现您请求的网址实际上返回了301 Moved Permanently状态代码。幸运的是,即使是301状态代码,响应头中也会提供Location标头。在这种情况下:

'http://locators.bankofamerica.com/locator/locator/LocatorAction.do?shouldTest=true'

哪个是分支定位器页面。您必须从此页面开始,以编程方式“搜索”您想要的位置,找到相应的链接,然后执行第三个请求。

该网站也使用Cookie,因此请查看cookielib