最近在學習Python爬蟲,但沒有什麼完整的學習路線,就通過一些比較簡單的小實例來積累經驗,畢竟是爲了畢設而已。上次爬取了京東的商品評論(京東),這次來試着爬取CSDN的文章評論。
以前爬取過CSDN文章的名字和閱讀數,這些信息是存在靜態網頁中的,直接將頁面get下來就可以提取出這些簡單的信息。但是評論這種信息一般都存放在json文件中,通過ajax來控制,在靜態頁面中無法直接提取。所以我們還是老方法,打開網頁的審查功能,在network中的json或XHR裏尋找我們所要的評論文件。
首先在首頁挑一篇評論量不少的文章,然後按F12來查看頁面的源代碼,再點擊network後刷新一下。最後在XHR中尋找與評論相關的文件:
就是這幾個文件,是json形式存儲的評論內容,我們在右側的header中可以看到它們的URL,其中page參數控制頁數。弄清楚之後就可以開始寫代碼了
import urllib.request
import json
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36',
'Referer': 'https://blog.csdn.net/qing_gee/phoenix/comment/list/104085756?page=1&size=10&tree_type=1'
}
for i in range(1,5):
url = "https://blog.csdn.net/qing_gee/phoenix/comment/list/104085756?page="+str(i)+"&size=10&tree_type=1"
request = urllib.request.Request(url=url,headers=headers)
content = urllib.request.urlopen(request).read().decode('gbk')
obj = json.loads(content)
data=obj['data']['list']
for j in data:
print(j['info']['Content'])