javascript - 如何使用 python 操作 html(或 javascript)来抓取数据条目
问题描述
我正在尝试使用 Python 中的 beautifulsoup从该网站上获取大学学术排名。目前,我可以毫无问题地抓取前 30 个条目,但是,其余条目需要我每次单击下一页。没有显示所有条目的选项。
当我单击条目页面时,URL 不会改变,所以我想这些条目正在被 javascript (?) 操纵,但是,当我检查源代码时,我找不到操纵它的方法。不可否认,我在这里是个业余爱好者。
如何使用 python 来操作这个网页;要么显示所有条目,要么遍历每个页面以提取完整的数据集?
更新 - 解决方案
感谢@j_carlson 提供的链接,我能够制定出我的解决方案:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Chrome('./chromedriver')
driver.get('http://www.shanghairanking.com/rankings/arwu/2021')
for page in range(npages+1)
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
# Extract what I want here
next_button_class = 'ant-pagination-next'
driver.find_element_by_class_name(next_button_class).click()
它只是使用 selenium 来“单击”类为“ant-pagination-next”的下一页按钮(我通过使用 chrome 的检查元素函数找到了这个),然后遍历每个页面,每次都提取我想要的数据。
解决方案
推荐阅读
- python - nx.node_connectivity 和 nx.minimum_node_cut 不匹配
- python - 如何将包含日期的 csv 数据加载到 numpy 数组中?
- javascript - 跟踪数据库中添加的对象
- regex - 如何使用 RegEx 以 DD/MM/YYYY 格式表示今天的日期?
- linux - Rasperry Pi4 不显示主机名
- gojs - GoJS 文本角度
- r - 我可以在 gnls 中重用带有参数的输入吗?
- git - 无法删除带有特殊字符的 git 远程分支
- java - 隐藏默认属性
- java - 无法从 src/main/resources Java 项目 Maven 获取文件夹