當前位置:首頁 » 網頁前端 » 爬蟲js腳本
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

爬蟲js腳本

發布時間: 2022-06-07 12:34:23

① 如何使用nodejs做爬蟲程序

1、如果是定向爬取幾個頁面,做一些簡單的頁面解析,爬取效率不是核心要求,那麼用什麼語言差異不大。
當然要是頁面結構復雜,正則表達式寫得巨復雜,尤其是用過那些支持xpath的類庫/爬蟲庫後,就會發現此種方式雖然入門門檻低,但擴展性、可維護性等都奇差。因此此種情況下還是推薦採用一些現成的爬蟲庫,諸如xpath、多線程支持還是必須考慮的因素。

2、如果是定向爬取,且主要目標是解析js動態生成的內容
此時候,頁面內容是有js/ajax動態生成的,用普通的請求頁面->解析的方法就不管用了,需要藉助一個類似firefox、chrome瀏覽器的js引擎來對頁面的js代碼做動態解析。
此種情況下,推薦考慮casperJS+phantomjs或slimerJS+phantomjs ,當然諸如selenium之類的也可以考慮。

3、如果爬蟲是涉及大規模網站爬取,效率、擴展性、可維護性等是必須考慮的因素時候
大規模爬蟲爬取涉及諸多問題:多線程並發、I/O機制、分布式爬取、消息通訊、判重機制、任務調度等等,此時候語言和所用框架的選取就具有極大意義了。
PHP對多線程、非同步支持較差,不建議採用。
NodeJS:對一些垂直網站爬取倒可以,但由於分布式爬取、消息通訊等支持較弱,根據自己情況判斷。
Python:強烈建議,對以上問題都有較好支持。尤其是Scrapy框架值得作為第一選擇。優點諸多:支持xpath;基於twisted,性能不錯;有較好的調試工具;
此種情況下,如果還需要做js動態內容的解析,casperjs就不適合了,只有基於諸如chrome V8引擎之類自己做js引擎。
至於C、C++雖然性能不錯,但不推薦,尤其是考慮到成本等諸多因素;對於大部分公司還是建議基於一些開源的框架來做,不要自己發明輪子,做一個簡單的爬蟲容易,但要做一個完備的爬蟲挺難的。

像我搭建的微信公眾號內容聚合的網站 就是基於Scrapy做的,當然還涉及消息隊列等。可以參考下圖:

具體內容可以參考 一個任務調度分發服務的架構

② 現在用node寫網頁爬蟲用phantomjs和jsdom各有什麼利弊

phantomjs實際上就是一個瀏覽器,只是不顯示界面,可以執行頁面的js腳本等。
jsdom主要是方便解析html文本,相當於對字元串進行分析。

phantomjs對資源的要求和消耗都比較大,如果需要的內容從網頁源代碼中可以解析出來,推薦用jsdom,如果頁面復雜,推薦用phantomjs

③ 爬蟲怎麼爬取js後面載入的數據

推薦個很好用的軟體,我也是一直在用的,就是前嗅的ForeSpider軟體,
他有自己編寫的腳本語言,網上通過js生成的內容都可以寫幾行腳本就可以採集數據了!!!!
我是一直用過很多的採集軟體,最後選擇的前嗅的軟體,ForeSpider這款軟體是可視化的操作。簡單配置幾步就可以採集。如果網站比較復雜,這個軟體自帶爬蟲腳本語言,通過寫幾行腳本,就可以採集所有的公開數據。
軟體還自帶免費的資料庫,數據採集直接存入資料庫,也可以導出成excel文件。
如果自己不想配置,前嗅可以配置採集模板,我的模板就是從前嗅購買的。
另外他們公司不光是軟體好用,還有自己的數據分析系統,直接採集完數據後入庫,ForeSpider內部集成了數據挖掘的功能,可以快速進行聚類分類、統計分析等,採集結果入庫後就可以形成分析報表。
最主要的是他採集速度非常快,我之前用八爪魚的軟體,開伺服器采,用了一個月采了100萬條,後來我用ForeSpider。筆記本採的,一天就好幾百萬條。
這些都是我一直用前嗅的經驗心得,你不妨試試。
建議你可以下載一個免費版試一試,免費版不限制功能,沒有到期時間。

④ 如果網頁內容是由javascript生成的,應該怎麼實現爬蟲

對於提到的兩種方法,抓包分析獲取請求的參數和驅動瀏覽器內核執行 js 代碼,兩種方法各有優點,選擇適合你的方式就好。

  1. 抓包分析,這個方法的優點是抓取的速度快,取得數據結構比較好,處理起來簡單,很多是 json 格式的數據,但是抓包分析需要大量的時間,這里的時間是指需要模擬需要獲取數據的之前的一個或者幾個請求,涉及到 headers 里的很多參數,有時候還設計到數據加密,這個過程你可能需要讀 js 源碼,才能解決問題。所以這個方式適合那些請求參數較少,數據結構比較好的網站。

2. 驅動瀏覽器內核,這個方法的優點是編程實現比較簡單,只要學會了驅動瀏覽器的 api 就可以在很少的改動下用於很多不同網站的抓取。但是缺點也很明顯,慢,佔用的資源比較多,不如抓包分析獲取數據靈活。

我以前抓取的好多網站都是用抓包分析的方式,還分析了好多網站的登錄的機制,用 Python 重寫 js 的請求,做模擬登錄,對於抓包分析有些偏執,但是我現在的觀點是:用最少的時間成本來解決問題,這里的時間成本是指編程時間和抓取的時間之和。當然你如果是學習的話,我建議兩種方式都學。

前端js爬蟲

純粹前端的js 是不能 跨域 獲取 cookie的
xxx.com 的js 代碼 只能得到 xxx.com的cookie,拿不到 yyy.com
當然如果你有辦法 在 yyy.com 寫入受到自己控制的 html文件,你就可以寫代碼去拿到 對應的cookie,但看你的需求 應該你沒有yyy.com 的許可權
所以 要結合其他方案,推薦一下兩種:
使用 electron ,electron 你可以認為是受js控制的瀏覽器引擎,所以你可以用它訪問 yyy.com 拿到cookie,再接著做你的事情
或者 使用 puppeteer(Google 官方出品的 headless Chrome node 庫)
Puppeteer 提供了一系列的 API,可以在無 UI 的情況下調用 Chrome 的各種功能,適用於爬蟲、自動化處理等各種情景。

⑥ 為什麼瀏覽器可以保存網頁中js動態內容,用java編寫的爬蟲卻無法抓取

爬蟲最多隻能抓取頁面載入完畢時的內容,怎麼可能慢慢等你網頁後續動態顯示出來的內容呢

⑦ 如何用Python爬蟲抓取JS動態篩選內容

打開瀏覽器,以google chrome為例,輸入你上面的網址。
然後按F12打開調試窗口,然後嘗試勾選左邊某一個選項,馬上可以看到右邊的調試窗口有東西輸出。
找到第一個輸出的行,點擊header,可以看到每一個都是用的post方法。
所以只需要構造相應的header並post上去,就可以得到你想要的數據了。

而這個發放返回的是json數據,然後編碼成dict格式 提取出數據就可以了。

⑧ php怎麼用爬蟲解析網頁上js生成的圖片

道理上講不可行,不管是PHP還是python,爬蟲技術用於抓取網頁解析內容和靜態內容,也就是在瀏覽器不解析js腳本時的網頁內容,因為js腳本解析需要用到瀏覽器內置的js解析程序,而php和python簡單爬蟲都做不到這一點,如果是自己的網站抓取,用非同步提交放到緩存里讓後台腳本處理,如果是別人的網站就不用考慮了。爬蟲程序要加上完整的腳本解析程序,還要保證定向抓取不拿到垃圾數據,當然如果你能做到這些,就可以去網路工作了