QQ空間Python爬蟲(2)---分析json

咱們把上一篇訪問獲得的json數據拿來先分析一下,這裏須要藉助json解析工具,推薦json.cn:html

 

 

 

觀察圖片右邊,具體的分析過程再也不贅述了,咱們發現圖片url信息在 date-->vFeeds(list)-->pic-->picdata-->pic(list)-->photourl-->0-->url 中(其中的list注意循環處理一下)json

文字信息在date-->vFeeds(list)-->summary-->summary中,代碼以下:工具

 1 url_x = 'https://mobile.qzone.qq.com/list?qzonetoken=30168ded82ff81d41e518db8ef77b00b94375b2139f956165128f52dd25c322e603e03f180d761dc42881f1a83e9&g_tk=420005040&res_attach=att%3D'
 2 url_y = '%26tl%3D1508148135&format=json&list_type=shuoshuo&action=0&res_uin=627911861&count=40'
 3 numbers = 0      # ‘查看更多’翻頁
 4 img_set = set()  # 存放圖片url集
 5 word_count = 0   # 文字說說計數器
 6 words = ""       # 存放文字說說
 7 images = ""      # 存放圖片url
 8 page = int(1758 / 40)
 9 
10 # for i in range(0, 43):
11 try:
12     html = requests.get(url_x + str(numbers) + url_y, headers=headers).content
13     data = json.loads(html)
14 
15     for vFeed in data['data']['vFeeds']:
16         if 'pic' in vFeed:
17             for pic in vFeed['pic']['picdata']['pic']:
18                 img_set.add(pic['photourl']['0']['url'])
19 
20         if 'summary' in vFeed:
21             # print(str(word_count) + '. ' + vFeed['summary']['summary'])
22             words += str(word_count) + '. ' + vFeed['summary']['summary'] + '\r\n'
23             word_count += 1
24 
25 except:
26     print('error')

上面之因此要把url拆成兩段是爲了處理變量,由於url存在%字符,用%s,%d來處理比較麻煩(懶得研究-。-)測試

(此處代碼僅僅爬取了40條說說信息,先測試跑通,後面再作爬取全部說說的循環處理)ui

 

 

接下來,就能夠將爬取到的文字與圖片信息分別寫入文件了,文字能夠直接寫成文本文件,圖片爲url集合先寫入文件再作下載處理:url

 1 try:
 2     with open(os.getcwd() + '\\' + str(qq) + '.txt', 'wb') as fo:
 3         fo.write(words.encode('utf-8'))
 4         print("文字說說寫入完畢")
 5 
 6     with open(os.getcwd() + '\\' + 'images_url', 'wb') as foImg:
 7         for imgUrl in img_set:
 8             images += imgUrl + '\r\n'
 9         foImg.write(images.encode('utf-8'))
10         print("圖片寫入完畢")
11 
12 except:
13     print('寫入數據出錯')

 

屢次請求以後會發生登錄的問題,後面再描述。不過,json數據分析的部分至此已經完成了。spa

 

下一章:code

QQ空間Python爬蟲(3)---終章 orm

相關文章
相關標籤/搜索