成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python利用Phantomjs抓取渲染JS后的網(wǎng)頁

lowett / 3170人閱讀

摘要:最近需要爬取某網(wǎng)站,無奈頁面都是渲染后生成的,普通的爬蟲框架搞不定,于是想到用搭一個代理。調(diào)用貌似沒有現(xiàn)成的第三方庫如果有,請告知小,漫步了一圈,發(fā)現(xiàn)只有提供了現(xiàn)成的方案。

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

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

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

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

準備工作

你當然要有Phantomjs,廢話!(Linux下最好用supervisord守護,必須保持抓取的時候Phantomjs一直處于開啟狀態(tài))

用項目路徑下的phantomjs_fetcher.js啟動:phantomjs phantomjs_fetcher.js [port]

安裝tornado依賴(使用了tornado的httpclient模塊)

調(diào)用是超級簡單的
pythonfrom tornado_fetcher import Fetcher

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

老規(guī)矩,代碼在小2的Github了,歡迎指正:PhantomjsFetcher

  

來自:建造者說

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/45350.html

相關(guān)文章

  • Python爬蟲使用Selenium+PhantomJS抓取Ajax和動態(tài)HTML內(nèi)容

    摘要:,集搜客開源代碼下載源開源網(wǎng)絡爬蟲源,文檔修改歷史,增補文字說明,增加第五章源代碼下載源,并更換源的網(wǎng)址 showImg(https://segmentfault.com/img/bVvMn3); 1,引言 在Python網(wǎng)絡爬蟲內(nèi)容提取器一文我們詳細講解了核心部件:可插拔的內(nèi)容提取器類gsExtractor。本文記錄了確定gsExtractor的技術(shù)路線過程中所做的編程實驗。這是第二...

    ymyang 評論0 收藏0
  • Python3網(wǎng)絡爬蟲實戰(zhàn)---2、請求庫安裝:GeckoDriver、PhantomJS、Aioh

    摘要:上一篇文章網(wǎng)絡爬蟲實戰(zhàn)請求庫安裝下一篇文章網(wǎng)絡爬蟲實戰(zhàn)解析庫的安裝的安裝在上一節(jié)我們了解了的配置方法,配置完成之后我們便可以用來驅(qū)動瀏覽器來做相應網(wǎng)頁的抓取。上一篇文章網(wǎng)絡爬蟲實戰(zhàn)請求庫安裝下一篇文章網(wǎng)絡爬蟲實戰(zhàn)解析庫的安裝 上一篇文章:Python3網(wǎng)絡爬蟲實戰(zhàn)---1、請求庫安裝:Requests、Selenium、ChromeDriver下一篇文章:Python3網(wǎng)絡爬蟲實戰(zhàn)--...

    Cristalven 評論0 收藏0
  • 如果有人問你爬蟲抓取技術(shù)的門道,請叫他來看這篇文章

    摘要:未授權(quán)的爬蟲抓取程序是危害原創(chuàng)內(nèi)容生態(tài)的一大元兇,因此要保護網(wǎng)站的內(nèi)容,首先就要考慮如何反爬蟲。反爬蟲的銀彈目前的反抓取機器人檢查手段,最可靠的還是驗證碼技術(shù)。機器人協(xié)議除此之外,在爬蟲抓取技術(shù)領域還有一個白道的手段,叫做協(xié)議。 本文首發(fā)于我的個人博客,同步發(fā)布于SegmentFault專欄,非商業(yè)轉(zhuǎn)載請注明出處,商業(yè)轉(zhuǎn)載請閱讀原文鏈接里的法律聲明。 web是一個開放的平臺,這也奠定了...

    raoyi 評論0 收藏0
  • Python爬蟲實戰(zhàn)(4):豆瓣小組話題數(shù)據(jù)采集—動態(tài)網(wǎng)頁

    摘要:,引言注釋上一篇爬蟲實戰(zhàn)安居客房產(chǎn)經(jīng)紀人信息采集,訪問的網(wǎng)頁是靜態(tài)網(wǎng)頁,有朋友模仿那個實戰(zhàn)來采集動態(tài)加載豆瓣小組的網(wǎng)頁,結(jié)果不成功。 showImg(https://segmentfault.com/img/bVzdNZ); 1, 引言 注釋:上一篇《Python爬蟲實戰(zhàn)(3):安居客房產(chǎn)經(jīng)紀人信息采集》,訪問的網(wǎng)頁是靜態(tài)網(wǎng)頁,有朋友模仿那個實戰(zhàn)來采集動態(tài)加載豆瓣小組的網(wǎng)頁,結(jié)果不成功...

    blastz 評論0 收藏0
  • pyspider 爬蟲教程(三):使用 PhantomJS 渲染JS 的頁面

    摘要:英文原文在上兩篇教程中,我們學習了怎么從中提取信息,也學習了怎么處理一些請求復雜的頁面。在使用之前,你需要安裝它安裝文檔。當你安裝了之后,在運行模式的時就會自動啟用了。使用當連上代理后,你就能通過在中添加的參數(shù),開啟使用抓取。 英文原文:http://docs.pyspider.org/en/latest/tutorial/Render-with-PhantomJS/ 在上兩篇教程中...

    zhongmeizhi 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<