用Python抓取网站的第二页不起作用

用Python抓取网站的第二页不起作用,python,python-2.7,web-scraping,beautifulsoup,urlopen,Python,Python 2.7,Web Scraping,Beautifulsoup,Urlopen,比如说,我想搜集数据 我可以在Python2.7中使用urlopen和BeautifulSoup很好地完成它 现在,如果我想从第二页用 我得到的是第一页的数据!我使用Chrome的“查看页面源”查看了第二页的页面源,内容属于第一页 如何从第二个页面中刮取数据?该页面具有非常异步的性质,有XHR请求形成搜索结果,使用请求在代码中模拟它们。示例代码作为您的起点: from bs4 import BeautifulSoup import requests url = 'http://www.amaz

比如说,我想搜集数据

我可以在Python2.7中使用
urlopen
BeautifulSoup
很好地完成它

现在,如果我想从第二页用

我得到的是第一页的数据!我使用Chrome的“查看页面源”查看了第二页的页面源,内容属于第一页


如何从第二个页面中刮取数据?

该页面具有非常异步的性质,有XHR请求形成搜索结果,使用
请求在代码中模拟它们。示例代码作为您的起点:

from bs4 import BeautifulSoup
import requests

url = 'http://www.amazon.com/Best-Sellers-Books-Architecture/zgbs/books/173508/#2'
ajax_url = "http://www.amazon.com/Best-Sellers-Books-Architecture/zgbs/books/173508/ref=zg_bs_173508_pg_2"

def get_books(data):
    soup = BeautifulSoup(data)

    for title in soup.select("div.zg_itemImmersion div.zg_title a"):
        print title.get_text(strip=True)


with requests.Session() as session:
    session.get(url)

    session.headers = {
        'User-Agent': 'Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
        'X-Requested-With': 'XMLHttpRequest'
    }

    for page in range(1, 10):
        print "Page #%d" % page

        params = {
            "_encoding": "UTF8",
            "pg": str(page),
            "ajax": "1"
        }
        response = session.get(ajax_url, params=params)
        get_books(response.content)

        params["isAboveTheFold"] = "0"
        response = session.get(ajax_url, params=params)
        get_books(response.content)

别忘了成为一名优秀的工程师,遵守使用条款。

哇哦,答案很好,而且效果很好。两个问题:1。您是如何发现XHR请求的?2.为什么在
url
ajax\u url
中使用第二页的地址…/#2而不是第一页?还有一个问题:在abobe函数中:
get\u books
如果我在for循环中添加一行,那么除了将图书标题打印到屏幕上之外,它还会将其写入一个文件,然后事情变得一团糟,不是所有的标题都打印在屏幕上,也不是打印到文件中。此代码中是否有时间敏感项?@TJ1 1。我使用过浏览器开发工具(网络选项卡)2。这可能是一个输入错误,尽管重要的是
ajax\uurl
,数据是通过ajax@TJ13.我现在不知道。最好单独提一个问题,这样如果你有困难,更多的人可以帮助你。谢谢。亚历克斯:你能自己试试吗?看看如果你把数据写入文件会发生什么?