首页 > 解决方案 > 如何使用 R 发送搜索词并从网站检索信息

问题描述

我想在这个网站 ( http://www.commonchemistry.org/ )上搜索一千多种不同药物的列表,然后获取每种药物的 CAS 编号。

我查找了“httr”包,但我没有网络抓取经验。是否有捷径可寻?

非常感谢

标签: rweb-scraping

解决方案


使用search.aspx搜索词并在 HTML 中查找正确的元素 - 使用rvest包:

> library(rvest)
> h = read_html("http://www.commonchemistry.org//search.aspx?terms=paracetamol")
> html_text(html_node(h,"#registryNumberLabel"))
[1] "103-90-2"

适用于“阿司匹林”和“扑热息痛”,但“伟哥”返回 NA,因为未找到。可能会发生其他事情。

添加&exact=true以对搜索词进行完全匹配,否则您可能会在格式略有不同的页面中获得多个匹配项。


推荐阅读