用python和beautifulsoup刮多页网站

时间:2015-12-01 21:47:28

标签: beautifulsoup

我正在尝试从quikbook.com抓取数据。我可以刮掉酒店名称的第一页,但我不知道如何导航到第二页。这是下一页按钮的标记:

<a id="nextLink" href="javascript:void(0)" cachekey="62707097:1515f4a1462:2e0c" cachelocation="10.186.170.117:7300" class="btn b-tertiary"><span>Next Page</span></a>

我的问题: 1)如何获取与其javascript相关的脚本:void(0) 2)如何导航到第二页。 我尝试使用Chrome检查工具查找页码,但没有页码。 任何帮助都非常感谢

1 个答案:

答案 0 :(得分:0)

对于类似这样的事情,最好使用像硒这样的网络驱动程序工具。如果你只想用漂亮的汤来做,你可以通过URL修改来破解它。

如果您查看网页的网址,您会注意到下一页中包含cachelocationchachekey。以下是一个示例网址:

http://www.quikbook.com/availabilitySearchNewYorkA?marketId=0&arrivalDate=12%2F02%2F2015&nbNights=1&nbRooms=1&nbAdults=1&radius=0&lat=0.0&lon=0.0&nbChildren=0&location=New+York&sort=OVERALL_VALUE&hotelId=0&minPrice=0&maxPrice=500&starRatingMin=1.0&includeCashbackHotel=true&starRatingMax=5.0&cacheLocation=10.178.144.41%3A7300&cacheKey=698fae78%3A151602773ee%3A-301&showMapTab=&propertyName=&destinationId=

该页面上的下一步按钮是:

<a id="nextLink" href="javascript:void(0)" cachekey="-1df6c48d:1516012d60d:6b74" cachelocation="10.186.170.66:7300" class="btn b-tertiary"><span>Next Page</span></a>

在上面的网址中替换这些:

&cacheLocation=10.186.170.66%3A7300 &cacheKey=-1df6c48d%3A1516012d60d%3A6b74

您将获得下一页的网址

http://www.quikbook.com/availabilitySearchNewYorkA?marketId=0&arrivalDate=12%2F02%2F2015&nbNights=1&nbRooms=1&nbAdults=1&radius=0&lat=0.0&lon=0.0&nbChildren=0&location=New+York&sort=OVERALL_VALUE&hotelId=0&minPrice=0&maxPrice=500&starRatingMin=1.0&includeCashbackHotel=true&starRatingMax=5.0&cacheLocation=10.186.170.66%3A7300&cacheKey=-1df6c48d%3A1516012d60d%3A6b74&showMapTab=&propertyName=&destinationId=

请注意,:已被%3A取代,因此网址可以处理它。