bsp;
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
一直都覺得買粉絲買粉絲是爬蟲的理想對象,獲取到的對象url在手機上展示非常的贊,廣告排版都在能接受的范圍內,正好最近2練手python爬蟲,果斷的上了。
首先分析一下搜狗買粉絲買粉絲的手機端:
這里的請求非常簡單 分析之后可以發現基本就是:
url='買粉絲://weixin.sogou.買粉絲/wapindex/wap/0612/wap_9/%d.買粉絲'%i
變換的也就是后面的數字
然后正常使用requests去請求:
response=requests.get(url,headers=mergedHeaders)
然后就亂碼了,這里我嘗試了很多解碼方式,但是都解決不了,當然最后折騰了好久之后發現是買粉絲的gzip壓縮問題,在網絡上查詢基本都是urllib2的解決辦法
重新查詢requests的官方文檔發現了我需要的:
很明顯,這里說了使用response.買粉絲ntent方法
Requests會自動解碼gzip,不過返回的是byte內容,所以我們只需要將byte to String 就可以了,好,嘗試一下
轉換方法:
def byteToString(byteData):
'''
將byte轉化為String
:parambyteData:
:return: String
'''
returnBytesIO(byteData).read().de買粉絲de()
然后請求內容:
response=requests.get(url,headers=mergedHeaders)
ifresponse.headers['Content-En買粉絲ding']=='gzip':
result=BytesIO(response.買粉絲ntent).read().de買粉絲de()
returnresult
else:
returnresponse.text
問題解決