Python使用请求和美化组进行刮取

Python使用请求和美化组进行刮取,python,Python,我正在尝试使用python请求和beautifulsoup来执行刮片操作。 基本上我是在亚马逊网页上爬行。 我能够抓取第一页没有任何问题 r = requests.get("http://www.amazon.in/gp/bestsellers/books/ref=nav_shopall_books_bestsellers") #do some thing 但是当我尝试在URL中用“#2”来抓取第二页时 我看到r仍然有相同的值,相当于1页的值 r = requests.get("http:/

我正在尝试使用python请求和beautifulsoup来执行刮片操作。 基本上我是在亚马逊网页上爬行。 我能够抓取第一页没有任何问题

r = requests.get("http://www.amazon.in/gp/bestsellers/books/ref=nav_shopall_books_bestsellers")
#do some thing 
但是当我尝试在URL中用“#2”来抓取第二页时

我看到r仍然有相同的值,相当于1页的值

r = requests.get("http://www.amazon.in/gp/bestsellers/books/ref=nav_shopall_books_bestsellers")
不知道在请求第二页时第二页是否会引起任何问题。 我也在谷歌上搜索这些问题,但我找不到解决办法。
使用#值向url发出请求的正确方式是什么。如何解决这个问题。请给出建议。

您需要在描述分页的锚定标记的
href
属性中请求url。在这一页的底部。如果我在google chrome的开发者控制台中检查页面,我发现第一个页面
url
如下:

http://www.amazon.in/gp/bestsellers/books/ref=zg_bs_books_pg_1?ie=UTF8&pg=1
第二个页面的url如下所示:

http://www.amazon.in/gp/bestsellers/books/ref=zg_bs_books_pg_2?ie=UTF8&pg=2
<a page="2" ajaxUrl="http://www.amazon.in/gp/bestsellers/books/ref=zg_bs_books_pg_2?ie=UTF8&pg=2&ajax=1" href="http://www.amazon.in/gp/bestsellers/books/ref=zg_bs_books_pg_2?ie=UTF8&pg=2">21-40</a>
第二页的标签如下所示:

http://www.amazon.in/gp/bestsellers/books/ref=zg_bs_books_pg_2?ie=UTF8&pg=2
<a page="2" ajaxUrl="http://www.amazon.in/gp/bestsellers/books/ref=zg_bs_books_pg_2?ie=UTF8&pg=2&ajax=1" href="http://www.amazon.in/gp/bestsellers/books/ref=zg_bs_books_pg_2?ie=UTF8&pg=2">21-40</a>

因此,您需要更改请求url。

“#2”是一个,在服务器端不可见。打开“”时获得的Html内容与“”的内容相同

在浏览器中,您会看到第二个页面,因为页面的javascript会看到片段标识符,创建ajax请求并向页面中注入新内容。您应该使用ajax请求的url并使用它:

看起来我们的url是:

我们很容易理解,我们所需要的只是更改“pg”param值以获得另一个页面