r - 如何从 HTML 对象中提取所有信息(包括未显示的信息)
问题描述
我正在尝试从 Google 学者中提取 Jean Tirole 的所有文章(网址:https ://scholar.google.com/citations?hl=en&user=ZEDUm5UAAAAJ&view_op=list_works&sortby=title )。下载网址后,我尝试了以下操作:
tirole_parent <- read_html("jean_tirole_GoogleScholarCitations.html")
tirole_table <- tirole_parent %>%
html_nodes(xpath = '//*[@id="gsc_a_b"]') %>%
html_nodes(xpath = "tr") %>%
html_nodes(xpath = "td") %>%
html_text()
但是,这只给了我前 20 篇文章。如何从 HTML 中获取所有文章?
解决方案
- 如果您正在寻找 grep 标题名称,那么它的正确名称是
gsc_a_at
- 当您按下 时
Show More
,实际上它是XHR
使用以下参数发出请求,即cstart
和pagesize
。 cstart
是从它开始的页面。pagesize
是每页的总结果,最大值是100
。- 总的结果是
660
,我将从 0 开始到 660。
from bs4 import BeautifulSoup
import requests
for start in range(0, 700, 100):
r = requests.get(
f"https://scholar.google.com/citations?hl=en&user=ZEDUm5UAAAAJ&view_op=list_works&sortby=title&cstart={start}&pagesize=100")
soup = BeautifulSoup(r.text, features="html.parser")
for item in soup.findAll('a', attrs={'class': 'gsc_a_at'}):
print(item.text)
您可以通过That Link在线查看输出
推荐阅读
- vue.js - 如何使用 vuejs 为 div 添加颜色
- python - 多重继承和super()
- vue.js - $vuetify.goTo 在 v-dialog 全屏模式下不起作用
- rasa - 翻译 NLU 模型中 RASA 实体提取的问题
- gulp - 已解决 - gulp : 为网站构建几个 dist,每个都有自己的自定义 js
- chart.js - Chart.js如何改变颜色的宽度
- bash - 如何将vim用作less -R?
- nativescript - tns 预览对意外令牌不起作用
- javascript - 命令行“node index.js”在 Windows 10 上无法正确输出,如何使其工作?
- typescript - 使用 webpack/TerserPlugin 在项目中配置 TypeScript 后,React Suspens/lazy 代码拆分被破坏