gpt4 book ai didi

python - 从单页网站获取所有与 BeautifulSoup 的链接 ('Load More' 功能)

转载 作者:行者123 更新时间:2023-11-30 22:59:12 27 4
gpt4 key购买 nike

我想从没有分页的网站上抓取所有链接,即有一个“加载更多”按钮,但 URL 不会根据您请求的数据量而改变。

当我 BeautifulSoup 页面并请求所有链接时,它只是在网站的普通首页上显示链接数量。我可以通过单击“加载更多”按钮来手动单击旧内容,但有没有办法以编程方式执行此操作?

这就是我的意思:

page = urllib2.urlopen('http://www.thedailybeast.com/politics.html')
soup = soup = BeautifulSoup(page)

for link in soup.find_all('a'):
print link.get('href')

不幸的是,没有负责分页的 URL。

最佳答案

当您单击“加载更多”按钮时,将向 http://www.thedailybeast.com/politics.view.<page_number>.json 发出 XHR 请求端点。您需要在代码中模拟它并解析 JSON 响应。使用 requests 的工作示例:

import requests

with requests.Session() as session:
for page in range(1, 10):
print("Page number #%s" % page)
response = session.get("http://www.thedailybeast.com/politics.view.%s.json" % page)
data = response.json()

for article in data["stream"]:
print(article["title"])

打印:

Page number #1
The Two Americas Behind Donald Trump and Bernie Sanders
...
Hillary Clinton’s Star-Studded NYC Bash: Katy Perry, Jamie Foxx, and More Toast the Candidate
Why Do These Republicans Hate Maya Angelou’s Post Office?
Page number #2
No, Joe Biden Is Not a Supreme Court Hypocrite
PC Hysteria Claims Another Professor
WHY BLACK CELEB ENDORSEMENTS MATTER MOST
...
Inside Trump’s Make Believe Presidential Addresses
...

关于python - 从单页网站获取所有与 BeautifulSoup 的链接 ('Load More' 功能),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35849319/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com