【发布时间】:2021-09-20 17:56:06
【问题描述】:
我在尝试抓取包含 42 页数据的 http://www.o-review.com/database_filter_model.php?table_name=glasses&tag= 时遇到了一个有趣的问题。我能够成功抓取第一页信息,但是在尝试抓取所有页面时,我发现 URL 保持不变,并且使用网站底部的按钮更改页面。
inspector 中的 html 代码如下:
<div onclick="filter_page('1')" class="filter_nav_button round5"
style="cursor:pointer;"><img src="/images/icon_arrow_next.svg"></div>
我在抓取和 python 方面非常新,但被告知我需要在 javascript 中模拟“点击”,我完全不知道该怎么做,并且不确定它是否可以被硬编码。到目前为止,我尝试尝试的东西很弱:
response = get('http://www.o-review.com/database_filter_model.php?
table_name=glasses&tag=')
soup = bs(response.text, 'html.parser')
print(soup)
for page in range(1, 42):
pages = soup.find('div', onclick_ = 'filter_page()')
希望过去有人解决了这个问题。帮助将不胜感激!谢谢!
编辑:这是我要添加的代码:
## Find All Frame models
for find_frames in soup.find_all('a', class_ = 'round5
grid_model'):
# Each iteration grabs child text and prints it
all_models = find_frames.text
print(all_models)
这将被添加到注释要添加代码的地方!谢谢!
【问题讨论】:
-
你没有在页面上循环!你只需遍历
range!您必须使用页面编号为每个页面发出请求!
标签: javascript python web-scraping visual-studio-code beautifulsoup