與一般的網頁資料不同,這裡我們開啟網頁控制台,找到network——js——productpagecomm…看右邊preview中的資料,發現我們想要的資料就在這個資料報裡。
找到了資料報,我們還需要知道它的請求頭也就是headers,這裡面有一些很重要的請求引數,我們在下面這兩張圖中的到資料報的url,cookie,referer,user-agent等請求引數
其中最下方的一些引數是資料的一些詳細引數,需要留下來有用
程式演示:
import requests
import json
import re
import time
# 獲取網頁html
def gethtml
(url, data, head)
: # 捕獲異常
try: r = requests.
get(url, params=data,headers=head)
r.raise_for_status()
return r.text
except:
print
('爬取失敗'
)def getcomment
(html)
: # 頁面編成json資料,無論什麼格式的資料編碼後都變成字串型別
i = json.
dumps
(html)
# json轉python物件
j = json.
loads
(i) # 正規表示式資料過濾
comment = re.
findall
(r''
, j)
# json解析
comm_dict = json.
loads
(comment[0]
) # 存資料實體
commentlist =
comm_list = comm_dict[
'comments'
]for com in comm_list:
# 使用者id
id=com[
'id'
] # 名稱
name=com[
'referencename'
] comment =''.
join
(com[
'content'].
split()
) # 使用者評分
score = com[
'score'
] # 使用者打分
# 時間
time=com[
'creationtime'
] # 放入列表
commentlist.
([id,name,score, comment]
)return commentlist
def getcomments
(url, num)
: head=
data=
# 資料容器
commetns=
for i in
range
(num+1)
:try
: # 控制頁碼
data[
'page']=i
html=
gethtml
(url,data,head)
commlist =
getcomment
(html)
# 捕獲異常
except:
print
("第%d頁抓取失敗"
%i)
commetns.
(commlist)
print
(%i)
# 睡眠一會防止被封
time.
sleep(3
)return commetns
def main()
: url=
""num=
(int)
(input
("請輸入抓取結束頁碼:"))
commlist=
getcomments
(url,num)
print
("資料抓取結束,準備寫入檔案中。。。"
)
page=
0 f =
open
('jdcomment.txt'
,'a'
, encoding=
'utf-8'
)for list in commlist:
print
("--->第%d頁正在寫入。。。"
%page)
strpage=
"--->第"
+str
(page)
+"頁共計"
+str
(len
(list))+
f.write
(strpage+
'\n'
)
# 睡一會防止寫入出錯
time.
sleep
(1.5
)for data in list:
strid=
"使用者id:"
+str
(data[0]
) f.
write
(strid+
'\n'
) strname=
" 產品:"
+str
(data[1]
) f.
write
(strname+
'\n'
) strsc=
" 評分:"
+str
(data[2]
) f.
write
(strsc+
'\n'
) strcom=
+str
(data[3]
) f.
write
(strcom+
'\n'
)print
("第%d頁寫入成功"
%page)
page+=
1 # 關閉檔案
f.close()
main
()
程式結束。 python json 爬京東商品評論
1 我用的是qq瀏覽器,右擊檢查,在network下選擇js,在搜尋框裡輸入productpagecomments 如果出不來記得f5重新整理一下 如圖 2 雙擊productpagecomments會得到以下頁面 二 找到想要的東西就要寫 啦 上 coding utf 8 importurllib...
用Python爬取京東商品評論(2)
首先開啟京東的頁面,輸入你想要查詢的某項商品的名稱,這裡用貝因美的某一款奶粉舉例 1.首先我們右擊選擇檢視網頁源 3.利用params引數構建 我們可以發現 callback fetchjson comment98vv75454 productid 1601354 score 0 sorttype ...
爬取京東某商品評論並存入csv
前言 找到你所要爬取物品的頁面,右鍵檢查,如圖所示 我們需要的就是紅方塊框柱的內容了。最後 我感覺可以直接上 了 import requests import json import csv from lxml import etree comment url for i in range 10 p...