自學(xué)爬蟲——老馬惹不起,簡(jiǎn)書謝謝你(爬蟲怎么自學(xué))

自學(xué)爬蟲——老馬惹不起,簡(jiǎn)書謝謝你(爬蟲怎么自學(xué))

這個(gè)爬蟲是個(gè)通用爬蟲,去用心的了解scrapy框架,你就能輕松駕馭

https://github.com/a371057600/python-paChong-

這里是我的不專業(yè)的github,不逼逼直接搬來用吧,不推薦重復(fù)造輪子,對(duì)著代碼多讀幾次就好,除非練手,不然不推薦重新敲,當(dāng)然,能優(yōu)化,改到你想要的功能是最好的.

把輪子用到了爬頭條上面

我覺得,在頭條上面教大家爬頭條好像不是太好(雖然,頭條也是爬別人的新聞)

頭條的反爬方法基本跟微博也是一樣,但是不推薦爬微博,因?yàn)槲⒉┐罅康馁~號(hào)和原創(chuàng)內(nèi)容,估計(jì)不登錄也不能爬,登陸了就會(huì)廢號(hào).

本來,計(jì)劃是爬淘寶的,但是無論怎么爬都會(huì)重定向到登錄頁面,用selemui也沒用(實(shí)際有用,你只要在爬取的時(shí)候登錄成為操作就好,但是這就類麻煩了.畢竟淘寶賬號(hào)很重要的…)所以,最后折中爬了簡(jiǎn)書,謝謝簡(jiǎn)書爸爸的教導(dǎo).

圖片描述(最多50字)

from scrapy import signals

from selenium import webdriver

import time

from scrapy.http.response.html import HtmlResponse

class SeleniumDownloadMiddleware(object):

def init(self):

self.driver = webdriver.Chrome(executable_path=r\”C:Workpythonchromedriver.exe\”)

def process_request(self,request,spider):

self.driver.get(request.url)

time.sleep(1)

try:

while True:

showMore = self.driver.find_element_by_class_name(\’show-more\’)

showMore.click()

time.sleep(0.3)

if not showMore:

break

except:

pass

source = self.driver.page_source

response = HtmlResponse(url=self.driver.current_url,body=source,request=request,encoding=\’utf-8\’)

return responsege

大的門戶網(wǎng)站你可以爬,爬了之后記得告訴我

獲取ajax數(shù)據(jù)的方式:

直接分析ajax調(diào)用的接口。然后通過代碼請(qǐng)求這個(gè)接口。

使用Selenium chromedriver模擬瀏覽器行為獲取數(shù)據(jù)。

方式優(yōu)點(diǎn)缺點(diǎn)分析接口直接可以請(qǐng)求到數(shù)據(jù)。不需要做一些解析工作。代碼量少,性能高。分析接口比較復(fù)雜,特別是一些通過js混淆的接口,要有一定的js功底。容易被發(fā)現(xiàn)是爬蟲。

圖片描述(最多50字)

selenium直接模擬瀏覽器的行為。瀏覽器能請(qǐng)求到的,使用selenium也能請(qǐng)求到。爬蟲更穩(wěn)定。代碼量多。性能低。

PS:本人全部自學(xué),發(fā)送到頭條也只是作為學(xué)習(xí)經(jīng)歷,順便分享經(jīng)驗(yàn),沒有炫耀和裝大佬的意向,反而有互相學(xué)習(xí)尋求幫助的想法.

醫(yī)生對(duì)病人說,你們有選擇不痛苦的權(quán)利.但是,各位自學(xué)的哥們,我們沒有選擇的權(quán)利,學(xué)習(xí)的過程必然是艱辛痛苦的,程序猿996不是為了誰,真的是因?yàn)橄矚g,真的是想要進(jìn)步所以才會(huì)996.死在自己喜歡的工作上何嘗不是鐘享受呢.

不求認(rèn)同,但是不希望噴子進(jìn)來,這只是個(gè)筆記.

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線咨詢
分享本頁
返回頂部