摘要:最近需要爬取某網(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
摘要:,集搜客開(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)。這是第二...
摘要:上一篇文章網(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)--...
摘要:未授權(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),這也奠定了...
摘要:,引言注釋上一篇爬蟲(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é)果不成功...
摘要:英文原文在上兩篇教程中,我們學(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/ 在上兩篇教程中...
閱讀 3251·2021-11-22 09:34
閱讀 2760·2021-09-30 09:47
閱讀 1565·2021-09-03 10:32
閱讀 3928·2021-08-16 10:49
閱讀 1921·2019-08-30 15:55
閱讀 2586·2019-08-30 15:52
閱讀 3422·2019-08-30 15:44
閱讀 1506·2019-08-30 15:44