Python爬取非同步載入的網站selenium+PhantomJS

來源:互聯網
上載者:User

標籤:視覺   網頁   inf   xls   blog   文法   UI   運行   時間   

一個網站的爬蟲指令碼,在調試的時候發現問題:

指令碼跑:content-type用text/xml 可以post成功,但post中body的內容沒有生效,所有的響應都是當前日期;用application,post不成功(即沒有返回資料)
工具發:content-type用text/xml 可以post成功,但post中body的內容沒有生效,所有的響應都是當前日期;用application,post成功且body中日期修改有效

即用指令碼根本就沒有收到返回的資料,但是用工具fiddler或者Burpsuite都可以正常的使用查看包的內容,很奇怪。直到後來才發現,原來我爬的這個網站是動態==

動態網頁(參考百度百科:https://baike.baidu.com/item/%E5%8A%A8%E6%80%81%E7%BD%91%E9%A1%B5/6327050)

--------------------------------------------------------------------所謂的動態網頁,是指跟靜態網頁相對的一種網頁編程技術。靜態網頁,隨著html代碼的產生,頁面的內容和顯示效果就基本上不會發生變化了——除非你修改頁面代碼。而動態網頁則不然,頁面代碼雖然沒有變,但是顯示的內容卻是可以隨著時間、環境或者資料庫操作的結果而發生改變的。值得強調的是,不要將動態網頁和頁面內容是否有動感混為一談。這裡說的動態網頁,與網頁上的各種動畫、滾動字幕等視覺上的動態效果沒有直接關係,動態網頁也可以是純文字內容的,也可以是包含各種動畫的內容,這些只是網頁具體內容的表現形式,無論網頁是否具有動態效果,只要是採用了動態網站技術產生的網頁都可以稱為動態網頁。總之,動態網頁是基本的html文法規範與Java、VB、VC等進階程式設計語言、資料庫編程等多種技術的融合,以期實現對網站內容和風格的高效、動態和互動管理。因此,從這個意義上來講,凡是結合了HTML以外的進階程式設計語言和資料庫技術進行的網頁編程技術產生的網頁都是動態網頁。-------------------------------------------------------------------- 也可以解釋為,動態網頁沒有執行javascript,僅僅使用data = response.read()得到的靜態html是沒有所想爬取內容在網上查到用Python 解決這個問題只有兩種途徑:直接從JavaScript 代碼裡採集內容,或者用Python 的第三方庫運行JavaScript,直接採集你在瀏覽器裡看到的頁面。曾經用selenium做過web自動化,就用第二種(其實selenium+PhantomJS就是類比瀏覽器訪問url,然後將動態網頁所有內容轉化為靜態html返回,這樣速度會很慢)安裝PhantomJS :第三方庫下載並放到python\scripts下爬蟲網易歌單中,播放量超過1000萬的歌曲名及連結,儲存至excelChrome 按F12查看網頁原始碼

頁面查元素,先切換frame到id=‘g_iframe‘

播放量nb及對應的標題和連結

mysongList1000.xls結果

 

 靈感來源:http://www.cnblogs.com/tuohai666/p/8718107.html

 

Python爬取非同步載入的網站selenium+PhantomJS

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.