如何使用jQuery和XPath抓取网页
How can one scrape a web page with jQuery and XPath?
我可以通过Firebug在网页的标题中粘贴一个jQuery javascript链接。然后,我可以运行一个脚本来抓取它和它链接到的页面。
我如何开始用jQuery或javascript编写这个脚本?在jQuery/Javascript中是否有一个接口,我可以使用XPath访问页面上的元素(以及它链接到的页面上)?
首先,您需要在浏览器之外使用JavaScript运行时。最常见的是Node.js。接下来你需要一种方法来创建DOM客户端。这通常使用jsdom来完成。
所以,你的脚本应该:
- 下载html页面(
jsdom
为您完成此操作,但您可以使用请求) - 创建客户端DOM
- 使用jQuery解析
下面是一个Node.js脚本示例:
var jsdom = require("jsdom");
jsdom.env("http://nodejs.org/dist/", [
'http://code.jquery.com/jquery-1.5.min.js'
], function(errors, window) {
console.log("there have been", window.$("a").length, "nodejs releases!");
});
你会运行它,就像这样:
$ node scrape.js
别忘了先安装jsdom
:
$ npm install --production jsdom
您可以使用快速获取页面的HTML
var html = document.documentElement.innerHTML;
这将只返回一个字符串文字,而不会捕获根元素。
您可能对pjscrape感兴趣,这是一个专门为此目的构建的web抓取库(免责声明:这是我的项目)。它基于PhantomJS,这是一个可以从命令行运行的无头Webkit实现,它有一个非常简单的语法,可以从多个页面中抓取数据,并找到额外的URL来抓取和抓取。
相关文章:
- 使用htmlunit抓取动态网页
- 使用 HTML5<输入>字段抓取动态生成的网页
- 自动点击按钮和网页抓取
- Python/R中的网页抓取javascript
- 使用Python使用Javascript进行网页抓取
- Python 网页抓取 JavaScript 生成的内容
- 幻影中的变量事务,抓取网页
- 如何在单击按钮时在核心PHP中抓取网页特定区域的屏幕截图
- Python Selenium,抓取网页JavaScript表
- 等待Javascript网页抓取功能完成,然后再运行下一页
- 用幻影和rvest抓取网页
- 保存使用 casperjs 抓取网页时获得的表数据
- 在 c# asp.net 中执行 JavaScript 后抓取网页
- 如何使用jQuery和XPath抓取网页
- 抓取网页并检索javascript变量
- 如何点击“更多”按钮,当Tripadvisor使用selenium抓取网页时
- 无法在Google Apps Script日志中看到完整的抓取网页
- 用python抓取网页以获取onclick值
- 抓取网页没有进行ajax调用,但数据不在DOM中
- 如何在使用BeautifulSoup抓取网页时提取javascript中的内容