php抓取网页数据实例(如何从第二页抓取数据?假设我要的数据!)

优采云 发布时间: 2022-04-06 09:15

  php抓取网页数据实例(如何从第二页抓取数据?假设我要的数据!)

  TJ1

  假设我正在抓取数据。

  我可以使用 urlopen 和 BeautifulSoup 在 python 2.7 中做到这一点。

  现在,如果我想使用从第二页获取数据。

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

  如何从第二页抓取数据?

  ec

  页面本质上是非常异步的,有 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)

  并且不要忘记成为一名优秀的网络爬虫公民并遵守使用条款。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线