kch*_*hoi 3 python screen-scraping beautifulsoup web-scraping
嗨,我想知道如何使用 beautifulsoup 来获取美国银行的营业时间。例如,如果网址为 (Shattuck_Ave_94704_BERKELEY_CA/bank_branch_locations/">http://locators.bankofamerica.com/locator/locator/2129_Shattuck _Ave_94704_BERKELEY_CA /bank_branch_locations/),我如何才能仅提取小时数?以下是我的初步尝试,但它似乎什么也没返回。
page = urllib2.urlopen(url)
soup = BeautifulSoup(page.read())
hours = soup.find_all("div", class_="lobbyHours")
print hours
Run Code Online (Sandbox Code Playgroud)
该 url 会重定向,这就是为什么soup.find_all("div", class_="lobbyHours")不返回任何内容的原因。div您重定向到的页面上没有该类。
通过使用 Firefox 的Firebug监控网络流量,我发现您请求的 url 实际上返回了一个301 Moved Permanently状态代码。幸运的是,即使是 301 状态代码,在响应标头中也提供了Location标头。在这种情况下:
'http://locators.bankofamerica.com/locator/locator/LocatorAction.do?shouldTest=true'
Run Code Online (Sandbox Code Playgroud)
这是分支定位器页面。您必须从此页面开始,以编程方式“搜索”您想要的位置,找到适当的链接,然后执行第三个请求。
该网站还使用 cookie,因此请查看cookielib。