繁体   English   中英

BeautifulSoup web 刮多页 URL 不变

[英]BeautifulSoup web scraping multiple pages URL doesn't change

当使用漂亮的汤来抓取评论时,我遇到了“所有观众”评论的问题。 更改评论列表页面时,URL 不会更新。

这是一个例子: https://www.rottentomatoes.com/m/midsommar/reviews?type=user

单击下一步时,URL 没有变化。

基于我尝试的另一个线程中可用的其他一些答案(我可能会说错)跟踪 xhr 请求,我相信正在运行的确切脚本是我在此处的图片中突出显示的内容(我没有10 声望,所以不能发布图片)。

网络方法帖

当我查看该 GET 操作的 header 时,我看到了一个请求 URL,当我尝试它包含我需要的所有信息时,问题是我不知道它们的命名约定以转到下一页。 以下是页面之间的 RequestURLs 如何变化。

请求 URL 第 1->2 页

请求 URL 第 2->3 页

我怎样才能得到漂亮的汤来迭代这些?

谢谢!

下面应该有足够的代码来尝试这个,忽略一些命名。

from bs4 import BeautifulSoup as soup
from urllib.request import Request, urlopen

x = input('What Movie?').replace(" ", "_").lower()

req_rot = Request('https://www.rottentomatoes.com/m/' + str(x) + '/reviews?type=user', headers={'User-Agent': 'Mozilla/5.0'})

webpage_rot = urlopen(req_rot).read()

page_soup_rot = soup(webpage_rot, "html.parser")

reviews_rot = page_soup_rot.findAll("div",{"class":"audience-reviews__review-wrap"})

z_rot = re.findall(r'js-clamp"(.+)</p>', str(reviews_rot))

Movie_Adj_rot = re.sub("[^\w]", " ",  str(z_rot)).split()

对这个问题更好的描述是窗口分页,我发现最简单的解决方案是学习 selenium 并在单击每个页面上的下一个按钮元素的范围循环中插入一个刮擦 function。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM