querylist采集微信公眾號文章(微信公眾號文章的輿情監控系統)
優(yōu)采云 發(fā)布時(shí)間: 2021-12-23 16:22querylist采集微信公眾號文章(微信公眾號文章的輿情監控系統)
小明醬是2018年元旦更新的,文筆還是很粗糙的。如果您遇到爬蟲(chóng)問(wèn)題,歡迎交流,評論區隨時(shí)為您開(kāi)放!
實(shí)習已經(jīng)過(guò)去兩周了,目前的任務(wù)量不是很大。我的老板人很好,他是一名軍校學(xué)生,分配給我的任務(wù)比我想象的更接近我的研究方向。他做的是微信公眾號文章的輿情監測系統。以下是系統圖的整體設計流程:
目前第一周是爬取微信公眾號文章,主要功能如下:
以上功能已經(jīng)實(shí)現。真心覺(jué)得在項目中學(xué)習是最高效的方式,但同時(shí)也有不明白的問(wèn)題。希望下周能掌握新知識,做一個(gè)總結。您不能只停留在插件編程中。.
下面我介紹一下思路流程GitHub代碼點(diǎn)擊這里:
大意
輸入公眾號獲取爬蟲(chóng)起始地址
http://weixin.sogou.com/weixin?type=1&s_from=input&query=+公眾號ID+&ie=utf8&_sug_=n&_sug_type_=
基于網(wǎng)頁(yè)結構設計爬取規則
在這個(gè)階段,我徘徊了很長(cháng)時(shí)間??吹胶芏郿emo設計花哨的反揀貨策略,讓我心慌了半天。
1.第一級:找到指定公眾號,獲取公眾號首頁(yè)鏈接
2.Level 2:跳轉到首頁(yè),找到文章的各個(gè)鏈接
3. Level 3:進(jìn)入每個(gè)文章頁(yè)面進(jìn)行信息爬取,三個(gè)綠色框內的信息,以及頁(yè)面的主要內容
主要思路是這樣的,用chrome檢查的部分就不細說(shuō)了,是例行操作
網(wǎng)址:
但是當我把網(wǎng)址復制到瀏覽器時(shí),他又回到了微信搜索的首頁(yè),哦,我該怎么辦?我們先來(lái)看看開(kāi)發(fā)者工具
以上參數只對應URL。專(zhuān)注于 tsn。表示訪(fǎng)問(wèn)在文章的一天內。我們應該提出以下要求:
return [scrapy.FormRequest(url='http://weixin.sogou.com/weixin',
formdata={'type':'2',
'ie':'utf8',
'query':key,
'tsn':'1',
'ft':'',
'et':'',
'interation':'',
'sst0': str(int(time.time()*1000)),
'page': str(self.page),
'wxid':'',
'usip':''},
method='get']
上面的問(wèn)題解決了~
存儲詳情
數據存儲量還是很大的,需要大量的樣本來(lái)訓練模型。它現在存儲在數據庫中,但值得我注意的一個(gè)細節是數據的編碼?,F在公眾號的文章里有很多表情符號。,于是出現如下錯誤:
pymysql.err.InternalError: (1366, "Incorrect string value: '\xF0\x9F\x93\xBD \xC2...' for column 'article' at row 1")
解決方案參考:
對抗爬行動(dòng)物
主要問(wèn)題是驗證碼,但是如果爬行速度不是很快,是可以避免的。因此,采用以下兩種策略:
import random
DOWNLOAD_DELAY = random.randint(1, 3)
總結頁(yè)面元素匹配問(wèn)題。以后我們會(huì )詳細了解BeautifulSoup的翻頁(yè)邏輯。這個(gè)只能自學(xué)自學(xué)了??紤]換頁(yè)的邏輯數據庫存儲和編碼問(wèn)題。Navicat是新?lián)Q的,感覺(jué)100分。這次配置完成后,放心使用代理IP,網(wǎng)上通過(guò)代碼爬取的IP無(wú)法使用,浪費了很多時(shí)間,邪惡的tsn,學(xué)了一招笑死了。
爬行的基本思路很清晰,但其實(shí)我還沒(méi)有完全掌握爬行,還有很多方面需要繼續學(xué)習。正如行走所說(shuō)的那樣,我心急如焚,想盡快實(shí)現自己的目標,卻忽略了正確的原則和基礎,是絕對不可能掌握的。因此,在寒假期間,我希望能好好學(xué)習以下知識:
尤其是第二點(diǎn)非常非常重要。學(xué)習會(huì )可以證明你可以爬,而不是僅僅拼湊幾段代碼來(lái)運行,你會(huì )得到很多東西。同時(shí)也希望志同道合的朋友可以加我。微信,一起進(jìn)步!哈哈我的微信歡迎私聊~