最近中文字幕2019高清,亚洲人成高清在线播放,男生淦哭男生图片动漫有字,国产亚洲精品九九久在线观看,无码av专区丝袜专区

內容采集(使用ScrapySharp快速從網(wǎng)頁(yè)中采集數據中的采集方案介紹)

優(yōu)采云 發(fā)布時(shí)間: 2021-10-10 09:03

  內容采集(使用ScrapySharp快速從網(wǎng)頁(yè)中采集數據中的采集方案介紹)

  在上一篇文章中,介紹了使用ScrapySharp快速獲取網(wǎng)頁(yè)數據采集。這種方法是通過(guò)直接Http請求獲取原創(chuàng )頁(yè)面信息,對于靜態(tài)網(wǎng)頁(yè)非常有效,但是網(wǎng)站中也有很多頁(yè)面內容并沒(méi)有全部存儲在原創(chuàng )頁(yè)面中。很多內容是通過(guò)javascript動(dòng)態(tài)生成的,這些數據是不能用前面的方法捕獲的。下面簡(jiǎn)單介紹一下采集動(dòng)態(tài)網(wǎng)頁(yè)的解決方案。

  對于這樣的網(wǎng)頁(yè)數據采集,往往使用瀏覽器引擎加載整個(gè)頁(yè)面,加載后輸出完整的頁(yè)面,然后使用ScrapySharp等工具進(jìn)行分析。常用的有以下幾種方式:

  使用 WebBrowser 控件

  相信大多數 .Net 開(kāi)發(fā)人員都使用這種方法。由于WebBrowser直接使用與操作系統集成的IE,無(wú)需下載第三方控件,相對簡(jiǎn)單快捷。但它只是一個(gè)用于展示的控件,并沒(méi)有提供很多接口。集成一些擴展很麻煩。

  使用網(wǎng)絡(luò )瀏覽器

  PhantomJS 是一個(gè)具有 Webkit 核心的無(wú)界面瀏覽器。它的特點(diǎn)之一是可以輕松集成javascript腳本,因此開(kāi)發(fā)擴展更加方便,也可以用于服務(wù)器端無(wú)法使用UI控件的地方。目前,大多數解決方案都在互聯(lián)網(wǎng)上。我將在這里轉錄我讀過(guò)的幾篇文章。我就不做詳細介紹了:

  程序本身是比較方便和強大的,但是在試用過(guò)程中還是存在一些問(wèn)題,比如有些網(wǎng)頁(yè)不是很規范,不能正確解析,或者有亂碼等。

  使用 CEF 控件

  CEF 是 Chromium Embedded Framework,是 Google 提供的 Chrome 集成解決方案。它提供了一個(gè)較低級別的 API,我們可以進(jìn)行更強大的自定義(當然,它也需要更多的工作)。比如,不是采集Picture 加速內容的分析。

  直接分析Javascript模擬渲染

  上述方案雖然可以簡(jiǎn)單正確地獲取解析出的完整頁(yè)面,但是存在一個(gè)性能問(wèn)題:很慢。雖然瀏覽器的開(kāi)發(fā)者都是頂級高手,但是由于頁(yè)面的渲染本身就是一個(gè)非常復雜的過(guò)程,用上面的工具完全渲染一個(gè)頁(yè)面還是需要幾秒鐘的時(shí)間,而且資源開(kāi)銷(xiāo)不小,不能支持*敏*感*詞*數據。采集。

  在大多數情況下,這不是什么大問(wèn)題,但是如果你更關(guān)注性能問(wèn)題,還有一個(gè)更原創(chuàng )的解決方法,那就是詳細分析網(wǎng)頁(yè)的JS工作原理,模擬瀏覽器只執行與內容相關(guān)的 JS。手動(dòng)獲取輸出內容。

  這樣,主要需要一個(gè)javascript引擎。已經(jīng)有大量的js引擎可以使用,基本沒(méi)問(wèn)題。其主要問(wèn)題在于需要對網(wǎng)頁(yè)進(jìn)行定制和分析,而這些網(wǎng)頁(yè)的JS大多采用了一定的混淆策略,不易分析,往往需要花費大量時(shí)間進(jìn)行調試。

0 個(gè)評論

要回復文章請先登錄注冊


官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

最近中文字幕2019高清,亚洲人成高清在线播放,男生淦哭男生图片动漫有字,国产亚洲精品九九久在线观看,无码av专区丝袜专区