从网页中提取内容数据

时间:2014-10-06 20:15:10

标签: web-scraping

我希望从网页网址获取结构化文章数据。到目前为止,我已经找到了这两项服务http://www.diffbot.com/http://embed.ly/extract/demos/nlp。是否有更好的替代方案,或者自己编写代码是否值得?

2 个答案:

答案 0 :(得分:0)

我已经做了很长时间的网页抓取/内容提取。

对我来说,最好的方法是编写Chrome内容扩展程序并使用其API自动化浏览器。这要求您了解Javascript和HTML。在我最近的一个项目中,我使用带有几个可编辑div的后台页面来配置抓取会话。我在后台页面上有一些按钮来启动该过程。后台页面加载一个JS脚本,该脚本侦听按钮的单击事件。

当单击其中一个按钮时,我使用chrome.tab.create为抓取会话添加一个新选项卡。后台js还定义了一些chrome.tabs.onUpdated.addListener,以便在选项卡URL包含特定页面/域名时注入内容脚本。

然后内容脚本执行抓取工作,例如使用jquery,正则表达式等选择一些元素,最后使用chrome.runtime.sendmessage将带有对象的消息发送回后台JS。后台JS脚本使用chrome.runtime.onMessage.addListener侦听消息,并根据提取的内容执行操作。

该扩展程序还可以通过单击下一页链接来自动化Web数据库。

我添加了一个时间设置来控制每分钟点击的链接数量/标签,这样就可以有效减慢访问速度,避免过多的抓取。

最后,使用AJAX调用将结果上传到数据库,并将PHP页面插入MySQL。

当扩展程序下次运行时,它会将数据库中已存在的键/链接与另一个AJAX调用进行比较,并确保仅提取新信息。

我还使用Firefox构建了如上所述的扩展程序,但对我来说最好和最简单的解决方案是Chrome / Chromium内容扩展。

答案 1 :(得分:0)

如果您想跳过代码,并且正在寻找一个简单的网页抓取/ ETL应用软件,我建议Foxtrot。它易于使用,不需要编码。我用它来从某些gov网站上抓取数据并将其转储到Excel电子表格中进行报告。