簡體   English   中英

在onload JS DOM注入后抓取頁面

[英]Scrape page after onload JS DOM injection

我正在構建一個從頁面獲取主圖像(當前基於Content-Length )的刮板。 它遍歷所有<img>元素並發出HEAD請求。 但是某些頁面,尤其是 移動設備,在頁面加載后插入圖片。 關於如何解決這個問題的任何想法?

我正在使用node.js

我不確定它是否可以解決您的問題,但是您可以考慮使用jsdom ,因為它可以獲取和執行頁面中的腳本,並在服務器端提供DOM。 就像是:

var request = require('request'),
    jsdom = require('jsdom').jsdom;

request(url, function(err, response, body) {
  if(err) return console.error(err);

  var doc = jsdom(body, null, {
    FetchExternalResources: ['script', 'img']
  });
  var window = doc.createWindow();

  var images = doc.getElementsByTagName('img');
});

使用PhantomJS 它“是帶有JavaScript API的無頭WebKit”。 將其視為可以通過JavaScript API控制的整個瀏覽器。 由於它是瀏覽器,它將完全執行頁面,然后可以對其進行抓取。

它有點類似於 Node.js,但實際上是一個完整的瀏覽器,您的腳本可以完全訪問您將其下拉的頁面的DOM。 因此,通過使用jQuery之類的方法訪問DOM而不是僅訪問原始HTML來智能地“擦除”頁面容易得多

這是有關DOM操作的示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM