亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

lowett / 3247人閱讀

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

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

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

簡(jiǎn)單試用了一下,感覺(jué)pyspider更像一個(gè)為新手打造的爬蟲(chóng)工具,好比一個(gè)老媽子,有時(shí)無(wú)微不至,有時(shí)喋喋不休。
輕巧的小工具應(yīng)該更受人喜愛(ài),我也懷著一點(diǎn)私心,可以帶著我最愛(ài)的BeautifulSoup一塊兒用,而不用再學(xué)PyQuery(pyspider用來(lái)解析HTML),更不用忍受瀏覽器寫(xiě)Python的糟糕體驗(yàn)(偷笑)。

所以花了一個(gè)下午的時(shí)間,把pyspider當(dāng)中實(shí)現(xiàn)Phantomjs代理的部分拆了出來(lái),獨(dú)立成一個(gè)小的爬蟲(chóng)模塊,希望大家會(huì)喜歡(感謝binux!)。

準(zhǔn)備工作

你當(dāng)然要有Phantomjs,廢話?。↙inux下最好用supervisord守護(hù),必須保持抓取的時(shí)候Phantomjs一直處于開(kāi)啟狀態(tài))

用項(xiàng)目路徑下的phantomjs_fetcher.js啟動(dòng):phantomjs phantomjs_fetcher.js [port]

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

調(diào)用是超級(jí)簡(jiǎn)單的
pythonfrom tornado_fetcher import Fetcher

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

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

  

來(lái)自:建造者說(shuō)

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/45350.html

相關(guān)文章

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

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

    ymyang 評(píng)論0 收藏0
  • Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---2、請(qǐng)求庫(kù)安裝:GeckoDriver、PhantomJS、Aioh

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

    Cristalven 評(píng)論0 收藏0
  • 如果有人問(wèn)你爬蟲(chóng)抓取技術(shù)的門(mén)道,請(qǐng)叫他來(lái)看這篇文章

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

    raoyi 評(píng)論0 收藏0
  • Python爬蟲(chóng)實(shí)戰(zhàn)(4):豆瓣小組話題數(shù)據(jù)采集—?jiǎng)討B(tài)網(wǎng)頁(yè)

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

    blastz 評(píng)論0 收藏0
  • pyspider 爬蟲(chóng)教程(三):使用 PhantomJS 渲染JS 的頁(yè)面

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

    zhongmeizhi 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<