我想知道是否可以“自动化”输入条目以搜索表单并从结果中提取匹配项的任务。例如,我有一份期刊文章列表,我想为其获取 DOI(数字对象标识符);为此,我会手动转到期刊文章搜索页面(例如,http://pubs.acs.org/search/advanced),输入作者/标题/卷(等),然后从其返回结果列表中找到该文章,然后选择 DOI并将其粘贴到我的引用列表中。我经常使用 R 和 Python 进行数据分析(我受到 RCurl 上的一篇文章的启发),但对 Web 协议(protocol)了解不多……这可能吗(例如使用 Python 的 BeautifulSoup 之类的东西?)。是否有任何很好的引用可以远程完成与此任务类似的任何事情?我对学习网络抓取和一般网络抓取工具和完成这项特定任务一样感兴趣......感谢您的时间!
最佳答案
Beautiful Soup 非常适合解析网页 - 这是您想要做的一半。 Python、Perl 和 Ruby 都有一个版本的 Mechanize,这是另一半:
http://wwwsearch.sourceforge.net/mechanize/
机械化让你控制浏览器:
# Follow a link
browser.follow_link(link_node)
# Submit a form
browser.select_form(name="search")
browser["authors"] = ["author #1", "author #2"]
browser["volume"] = "any"
search_response = br.submit()
使用机械化和美丽的汤,您有一个很好的开始。我会考虑的一个额外工具是 Firebug,在这个快速 ruby 抓取指南中使用:
http://www.igvita.com/2007/02/04/ruby-screen-scraper-in-60-seconds/
Firebug 可以加快您构建用于解析文档的 xpath 的速度,从而为您节省大量时间。
祝你好运!
关于forms - 网络抓取以填写(和检索)搜索表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1170120/