好評:
中評:差評:
追評:可以看到這個url裡都有以下幾個引數:
"videocount": 2638,
"videocountstr": "2600+",
"aftercount": 4852,
"aftercountstr": "4800+",
"showcount": 24200,
"showcountstr": "2.4萬+",
"productid": 100006788665,
"score1count": 2600,
"score2count": 592,
"score3count": 1756,
"score4count": 3499,
"score5count": 168724
}
import requests
import pandas as pd
import json
import time
import csv
import re
##callback=fetchjson_comment98&productid=100006788665
#&score=0&sorttype=5&page=0&pagesize=10&isshadowsku=0&fold=1
#requests請求位址
url =
""#請求頭
header =
for i in
range
(100):
#請求引數
data =
html = requests.get(url,params = data,headers = header)
這裡有一點忘記說了,京東手機不通的產品有不同的productid,想要換不同的產品進行爬取,只需要換這個id就行了。
在用get請求網頁內容時,有以下兩種方式:
1、requests.get(url = 「」)
url=
callback=fetchjson_comment98&productid=100006788665
&score=0&sorttype=5&page=0&pagesize=10&isshadowsku=0&fold=1
2、requests.get(url = 「」, params = data) 使用params
url=
html_json = re.search(
"(?<=fetchjson_comment98\().*(?=\))"
,html.text)
.group(
0)
#(?<=fetchjson_comment98().(?=)
(?<=fetchjson_comment98()表示匹配以"fetchjson_comment98(「為開頭的字串,並且捕獲(儲存)到分組中,
這裡的(以(表示,許多元字元要求在試圖匹配它們時特別對待。若要匹配這些特殊字元,必須首先使字元"轉義」,
即,將反斜槓字元\ 放在它們前面。
(?=)表示匹配以\結尾的字串,並且捕獲(儲存)到分組中。
中間的.,其中.表示匹配除換行符 \n 之外的任何單字元,*表示匹配前面的子表示式零次或多次,兩個加起來形成乙個貪婪匹配,就是除了換行符之外,所有字元都匹配,並且匹配次數不限制。
#import re
a = 「123abc456」
print re.search("([0-9])([a-z])([0-9])",a).group(0) #123abc456,返回整體
print re.search("([0-9])([a-z])([0-9])",a).group(1) #123
print re.search("([0-9])([a-z])([0-9])",a).group(2) #abc
print re.search("([0-9])([a-z])([0-9])",a).group(3) #456
正規表示式中的三組括號把匹配結果分成三組
group() 同group(0)就是匹配正規表示式整體結果
group(1) 列出第乙個括號匹配部分,group(2) 列出第二個括號匹配部分,group(3) 列出第三個括號匹配部分。
沒有匹配成功的,re.search()返回none
『』』
j = json.load(html_json)
#儲存為字典
for jj in
range
(len
(j["comments"])
):data1 =
[(j[
"comments"
][jj]
["content"])
]#從j中找出"comments"中的"conent"
data2 = pd.dataframe(data1)
data2.to_csv(
,header =
false
,index =
false
,mode =
"a+"
)time.sleep(2)
print
("page "
+str(1
+i)+
"has done"
)
借鑑資料:
如何解決python爬蟲中response [200]返回值問題
正則 ?<= 和 ?= 用法
python3 re.search()方法
python——re.search().group()
request–get請求的用法
完整**:
import requests
import pandas as pd
import json
import time
import csv
import re
url =
""#請求頭
header =
for i in
range
(100):
#請求引數
data =
html = requests.get(url,params = data,headers = header)
html_json = re.search(
"(?<=fetchjson_comment98\().*(?=\))"
,html.text)
.group(0)
j = json.load(html_json)
#儲存為字典
for jj in
range
(len
(j["comments"])
):data1 =
[(j[
"comments"
][jj]
["content"])
]#從j中找出"comments"中的"conent"
data2 = pd.dataframe(data1)
data2.to_csv(
,header =
false
,index =
false
,mode =
"a+"
) time.sleep(2)
print
("page "
+str(1
+i)+
"has done"
)
python爬取京東評論
這不是我的第乙個爬蟲,但大多數都是像這樣簡單粗暴的,因為一開始對於定義函式,然後再進行相應的操作,是比較困難的,這能直接寫for迴圈語句。然後,我們便開始進行相應的爬蟲第一步 匯入必要的包 import requests import json header這個的作用在於偽裝成瀏覽器進行操作,有些網...
python爬取京東評論 一
作為乙個爬蟲小白解決問題是十分蛋疼的 皿 就這幾行 我折磨了一下午,然後我發現,學習 最大的難題是學習資源獲取的途徑並不是 本身,只要學,任何人都能學會 開發者選項 3.知道了這個是相應的請求了,去headers弄url,去看看怎麼樣 複製url 4下面開始搞 import requests imp...
用Python爬取京東商品評論(2)
首先開啟京東的頁面,輸入你想要查詢的某項商品的名稱,這裡用貝因美的某一款奶粉舉例 1.首先我們右擊選擇檢視網頁源 3.利用params引數構建 我們可以發現 callback fetchjson comment98vv75454 productid 1601354 score 0 sorttype ...