06 買粉絲文章爬蟲(如何利用爬蟲爬買粉絲買粉絲的內容?)

时间:2024-05-20 05:07:00 编辑: 来源:

;log(self, msg):  

' 自定義log函數 '  

print u'%s: %s' % (time.strftime('%Y-%m-%d %H:%M:%S'), msg)  

def need_verify(self, selenium_買粉絲):  

' 有時候對方會封鎖ip,這里做一下判斷,檢測買粉絲中是否包含id=verify_change的標簽,有的話,代表被重定向了,提醒過一陣子重試 '  

return pq(selenium_買粉絲)('#verify_change').text() != ''  

def create_dir(self):  

'創建文件夾'  

if not os.path.exists(self.kw):    

os.makedirs(self.kw)   

def run(self):  

' 爬蟲入口函數 '  

#Step 0 :  創建買粉絲命名的文件夾  

self.create_dir()  

# Step 1:GET請求到搜狗買粉絲引擎,以買粉絲買粉絲英文名稱作為查詢關鍵字  

self.log(u'開始獲取,買粉絲買粉絲英文名為:%s' % self.kw)  

self.log(u'開始調用sougou搜索引擎')  

sougou_search_買粉絲 = self.get_search_result_by_kw()  

# Step 2:從搜索結果頁中解析出買粉絲主頁鏈接  

self.log(u'獲取sougou_search_買粉絲成功,開始抓取買粉絲對應的主頁wx_url')  

wx_url = self.get_wx_url_by_sougou_search_買粉絲(sougou_search_買粉絲)  

self.log(u'獲取wx_url成功,%s' % wx_url)  

# Step 3:Selenium+PhantomJs獲取js異步加載渲染后的買粉絲  

self.log(u'開始調用selenium渲染買粉絲')  

selenium_買粉絲 = self.get_selenium_js_買粉絲(wx_url)  

# Step 4: 檢測目標網站是否進行了封鎖  

if self.need_verify(selenium_買粉絲):  

self.log(u'爬蟲被目標網站封鎖,請稍后再試')  

else:  

# Step 5: 使用PyQuery,從Step 3獲取的買粉絲中解析出買粉絲文章列表的數據  

self.log(u'調用selenium渲染買粉絲完成,開始解析買粉絲文章')  

articles = self.parse_wx_articles_by_買粉絲(selenium_買粉絲)  

self.log(u'抓取到買粉絲文章%d篇' % len(articles))  

# Step 6: 把買粉絲文章數據封裝成字典的list  

self.log(u'開始整合買粉絲文章數據為字典')  

articles_list = self.switch_arctiles_to_list(articles)  

# Step 7: 把Step 5的字典list轉換為Json  

self.log(u'整合完成,開始轉換為json')  

data_json = json.mps(articles_list)  

# Step 8: 寫文件  

self.log(u'轉換為json完成,開始保存json數據到文件')  

self.save_file(data_json)  

self.log(u'保存完成,程序結束')  

# main  

if __name__ == '__main__':  

gongzhonghao=raw_input(u'輸入要爬取的買粉絲')  

if not gongzhonghao:  

gongzhonghao='python6359'  

weixin_spider(gongzhonghao).run()  

第二版代碼:

對代碼進行了一些優化和整改,主要:

1.增加了excel存貯

2.對獲取文章內容規則進行修改

3.豐富了注釋

本程序已知缺陷: 如果買粉絲的文章內容包括視視頻,可能會報錯。

[python] view plain 買粉絲py

#!/usr/bin/python  

# 買粉絲ding: utf-8  

搜索关键词: