欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Phantomjs抓取渲染JS后的網頁(Python代碼)

 更新時間:2016年05月13日 09:09:10   投稿:hebedich  
phantomjs:我的理解就是它是一個無顯示的瀏覽器,也就是說除了不能顯示頁面內容以外,瀏覽器能干的活兒它基本上都能干。下面我們就來利用他做點有趣的事情

最近需要爬取某網站,無奈頁面都是JS渲染后生成的,普通的爬蟲框架搞不定,于是想到用Phantomjs搭一個代理。

Python調用Phantomjs貌似沒有現成的第三方庫(如果有,請告知小編),漫步了一圈,發(fā)現只有pyspider提供了現成的方案。

簡單試用了一下,感覺pyspider更像一個為新手打造的爬蟲工具,好比一個老媽子,有時無微不至,有時喋喋不休。 輕巧的小工具應該更受人喜愛,我也懷著一點私心,可以帶著我最愛的BeautifulSoup一塊兒用,而不用再學PyQuery(pyspider用來解析HTML),更不用忍受瀏覽器寫Python的糟糕體驗(偷笑)。

所以花了一個下午的時間,把pyspider當中實現Phantomjs代理的部分拆了出來,獨立成一個小的爬蟲模塊,希望大家會喜歡(感謝binux?。?/p>

準備工作

你當然要有Phantomjs,廢話?。↙inux下最好用supervisord守護,必須保持抓取的時候Phantomjs一直處于開啟狀態(tài))
用項目路徑下的phantomjs_fetcher.js啟動:phantomjs phantomjs_fetcher.js [port]
安裝tornado依賴(使用了tornado的httpclient模塊)

調用是超級簡單的

from tornado_fetcher import Fetcher

# 創(chuàng)建一個爬蟲
>>> fetcher=Fetcher(
  user_agent='phantomjs', # 模擬瀏覽器的User-Agent
  phantomjs_proxy='http://localhost:12306', # phantomjs的地址
  poolsize=10, # 最大的httpclient數量
  async=False # 同步還是異步
  )
# 開始連接Phantomjs的代碼,可以渲染JS!
>>> fetcher.fetch(url)
# 渲染成功后執(zhí)行額外的JS腳本(注意用function包起來?。?
>>> fetcher.fetch(url, js_script='function(){setTimeout("window.scrollTo(0,100000)}", 1000)')

代碼 https://github.com/2shou/PhantomjsFetcher

相關文章

  • Python Thread虛假喚醒概念與防范詳解

    Python Thread虛假喚醒概念與防范詳解

    這篇文章主要介紹了Python Thread虛假喚醒概念與防范,虛假喚醒是一種現象,它只會出現在多線程環(huán)境中,指的是在多線程環(huán)境下,多個線程等待在同一個條件上,等到條件滿足時,所有等待的線程都被喚醒,但由于多個線程執(zhí)行的順序不同
    2023-02-02
  • python中的多線程實例教程

    python中的多線程實例教程

    這篇文章主要介紹了python中的多線程用法,包括線程的創(chuàng)建、同步等核心問題,具有很好的參考借鑒價值,需要的朋友可以參考下
    2014-08-08
  • Python的argparse庫使用詳解

    Python的argparse庫使用詳解

    argparse是python標準庫里面用來處理命令行參數的庫,這篇文章主要介紹了Python的argparse庫使用詳解,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • Python實現分段線性插值

    Python實現分段線性插值

    這篇文章主要為大家詳細介紹了Python實現分段線性插值,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • 一文帶你學會如何利用Python實現一個三維繪圖系統(tǒng)

    一文帶你學會如何利用Python實現一個三維繪圖系統(tǒng)

    tkinter是Python標準庫中自帶的GUI工具,使用十分方便,所以本文旨在帶大家學會如何將matplotlib嵌入到tkinter中并繪制三維繪圖系統(tǒng),感興趣的可以了解下
    2023-09-09
  • python 多進程隊列數據處理詳解

    python 多進程隊列數據處理詳解

    今天小編就為大家分享一篇python 多進程隊列數據處理詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python實現按日期歸檔文件

    python實現按日期歸檔文件

    這篇文章主要介紹了python實現如何按日期歸檔文件,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • 深入理解Django中內置的用戶認證

    深入理解Django中內置的用戶認證

    Django自帶一個用戶認證系統(tǒng),這個系統(tǒng)處理用戶帳戶、組、權限和基于cookie的會話,下面這篇文章就來給大家介紹了關于Django中內置的用戶認證的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。
    2017-10-10
  • 深入分析python數據挖掘 Json結構分析

    深入分析python數據挖掘 Json結構分析

    這篇文章通過實例給大家分析總結了python數據挖掘以及Json結構分析的相關知識點,對此有興趣的朋友參考下。
    2018-04-04
  • 利用Python進行時間序列數據分析與可視化的代碼示例

    利用Python進行時間序列數據分析與可視化的代碼示例

    隨著時間序列數據在金融、氣象、生態(tài)等領域的廣泛應用,利用Python進行時間序列數據分析和可視化已成為重要的技能之一,本文將介紹如何使用Python進行時間序列數據分析和可視化,并給出相應的代碼示例,需要的朋友可以參考下
    2023-11-11

最新評論