這個爬蟲是個通用爬蟲,去用心的了解scrapy框架,你就能輕松駕馭
https://github.com/a371057600/python-paChong-
這里是我的不專業(yè)的github,不逼逼直接搬來用吧,不推薦重復(fù)造輪子,對著代碼多讀幾次就好,除非練手,不然不推薦重新敲,當(dāng)然,能優(yōu)化,改到你想要的功能是最好的.
把輪子用到了爬頭條上面
我覺得,在頭條上面教大家爬頭條好像不是太好(雖然,頭條也是爬別人的新聞)
頭條的反爬方法基本跟微博也是一樣,但是不推薦爬微博,因為微博大量的賬號和原創(chuàng)內(nèi)容,估計不登錄也不能爬,登陸了就會廢號.
本來,計劃是爬淘寶的,但是無論怎么爬都會重定向到登錄頁面,用selemui也沒用(實(shí)際有用,你只要在爬取的時候登錄成為操作就好,但是這就類麻煩了.畢竟淘寶賬號很重要的…)所以,最后折中爬了簡書,謝謝簡書爸爸的教導(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)用的接口。然后通過代碼請求這個接口。
使用Selenium chromedriver模擬瀏覽器行為獲取數(shù)據(jù)。
方式優(yōu)點(diǎn)缺點(diǎn)分析接口直接可以請求到數(shù)據(jù)。不需要做一些解析工作。代碼量少,性能高。分析接口比較復(fù)雜,特別是一些通過js混淆的接口,要有一定的js功底。容易被發(fā)現(xiàn)是爬蟲。
圖片描述(最多50字)
selenium直接模擬瀏覽器的行為。瀏覽器能請求到的,使用selenium也能請求到。爬蟲更穩(wěn)定。代碼量多。性能低。
PS:本人全部自學(xué),發(fā)送到頭條也只是作為學(xué)習(xí)經(jīng)歷,順便分享經(jīng)驗,沒有炫耀和裝大佬的意向,反而有互相學(xué)習(xí)尋求幫助的想法.
醫(yī)生對病人說,你們有選擇不痛苦的權(quán)利.但是,各位自學(xué)的哥們,我們沒有選擇的權(quán)利,學(xué)習(xí)的過程必然是艱辛痛苦的,程序猿996不是為了誰,真的是因為喜歡,真的是想要進(jìn)步所以才會996.死在自己喜歡的工作上何嘗不是鐘享受呢.
不求認(rèn)同,但是不希望噴子進(jìn)來,這只是個筆記.
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實(shí),本站將立刻刪除。