Python爬蟲抓取京東評論生成Excel表格(附源碼)

廢話不多說直接開始

image

爬取京東單頁評論

一、找到商品評論

image

二、檢查網(wǎng)頁源代碼

搜索發(fā)現(xiàn)并沒有想要內(nèi)容

image

打開開發(fā)者工具查看抓取到的內(nèi)容發(fā)現(xiàn)有評論內(nèi)容,我們就可以對請url地址發(fā)送請求來獲取數(shù)據(jù)
image.png

image

三、開始編寫程序

代碼

import requests
import re
headers = {
    'Connection': 'keep-alive',
    'sec-ch-ua': '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"',
    'sec-ch-ua-mobile': '?0',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36',
    'Accept': '*/*',
    'Sec-Fetch-Site': 'same-site',
    'Sec-Fetch-Mode': 'no-cors',
    'Sec-Fetch-Dest': 'script',
    'Referer': 'https://item.jd.com/',
    'Accept-Language': 'zh-CN,zh;q=0.9',
}
cookies = {
    '__jdu': '1140149181',
    'shshshfpb': 'dxvAdGKVNzAegFZ04SPRPjw%3D%3D',
    'shshshfpa': '551d8e1b-9679-a2a9-4853-c893fad3a0c2-1588218470',
    'areaId': '13',
    'ipLoc-djd': '13-1042-3528-0',
    'unpl': 'V2_ZzNtbRBTFkYhDBZQeB4PBmIDEFwSXhYWcQERBykfWVFkBEcJclRCFnUUR1NnGFkUZwsZX0RcQBxFCEdkeBBVAWMDE1VGZxBFLV0CFSNGF1wjU00zQwBBQHcJFF0uSgwDYgcaDhFTQEJ2XBVQL0oMDDdRFAhyZ0AVRQhHZHsZWQRnBhpdS1dzJXI4dmR4HVsHZgIiXHJWc1chVERTcx1bACoDElhDV0YddQFGZHopXw%3d%3d',
    '__jdv': '76161171|baidu-pinzhuan|t_288551095_baidupinzhuan|cpc|0f3d30c8dba7459bb52f2eb5eba8ac7d_0_c5dbe5a526b24130a8d258fbc74e26de|1622806649582',
    '__jda': '122270672.1140149181.1607922153.1622723717.1622806650.7',
    '__jdc': '122270672',
    '_gcl_au': '1.1.1090722577.1622806657',
    'shshshfp': '2642ee3c640efeb0e9447e6545757fca',
    '__jdb': '122270672.5.1140149181|7.1622806650',
    'shshshsID': '3742c97b007a5cf7adaa9cff4323c957_3_1622806689501',
    'JSESSIONID': '81C1CD5FA9D0F18E7FFADD802EC34264.s1',
    'jwotest_product': '99',
    '3AB9D23F7A4B3C9B': '6NAODRKK6T33JSTFT3NYNWJAJQ2BCPHUZTUM73ZFAJPIMAS44RCYDE4BC6G7LRUPAWKISABMYIUWYB2LIDAMRKRPVU',
}
url="https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100020318814&score=0&sortType=5&page=2&pageSize=10&isShadowSku=0&rid=0&fold=1"
response = requests.get(url=url, headers=headers,cookies=cookies).text
res='"content":"(.*?)"'
content=re.findall(res,response)
for index,i in enumerate(content):
    print("第{}條評論:".format(index+1)+i+"\n")

運(yùn)行結(jié)果

image

京東多頁評論爬取

image

通過前三頁url地址比對可以發(fā)現(xiàn)只有page的值有變化谷婆,所以我們可以用列表推導(dǎo)式來獲取前10頁url依次發(fā)送請求來實(shí)現(xiàn)多頁爬取

def url_list():
    url = "https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100020318814&score=0&sortType=5&page={}&pageSize=10&isShadowSku=0&rid=0&fold=1"
    url_list=[url.format(i) for i in range(1,11)]
    return url_list
image

編寫程序

代碼

import requests
import re
def url_list():
    url = "https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100020318814&score=0&sortType=5&page={}&pageSize=10&isShadowSku=0&rid=0&fold=1"
    url_list=[url.format(i) for i in range(1,11)]
    return url_list
def url_parse(list):
    index = 1
    for url in list:
        headers = {
            'Connection': 'keep-alive',
            'sec-ch-ua': '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"',
            'sec-ch-ua-mobile': '?0',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36',
            'Accept': '*/*',
            'Sec-Fetch-Site': 'same-site',
            'Sec-Fetch-Mode': 'no-cors',
            'Sec-Fetch-Dest': 'script',
            'Referer': 'https://item.jd.com/',
            'Accept-Language': 'zh-CN,zh;q=0.9',
        }
        cookies = {
            '__jdu': '1140149181',
            'shshshfpb': 'dxvAdGKVNzAegFZ04SPRPjw%3D%3D',
            'shshshfpa': '551d8e1b-9679-a2a9-4853-c893fad3a0c2-1588218470',
            'areaId': '13',
            'ipLoc-djd': '13-1042-3528-0',
            'unpl': 'V2_ZzNtbRBTFkYhDBZQeB4PBmIDEFwSXhYWcQERBykfWVFkBEcJclRCFnUUR1NnGFkUZwsZX0RcQBxFCEdkeBBVAWMDE1VGZxBFLV0CFSNGF1wjU00zQwBBQHcJFF0uSgwDYgcaDhFTQEJ2XBVQL0oMDDdRFAhyZ0AVRQhHZHsZWQRnBhpdS1dzJXI4dmR4HVsHZgIiXHJWc1chVERTcx1bACoDElhDV0YddQFGZHopXw%3d%3d',
            '__jdv': '76161171|baidu-pinzhuan|t_288551095_baidupinzhuan|cpc|0f3d30c8dba7459bb52f2eb5eba8ac7d_0_c5dbe5a526b24130a8d258fbc74e26de|1622806649582',
            '__jda': '122270672.1140149181.1607922153.1622723717.1622806650.7',
            '__jdc': '122270672',
            '_gcl_au': '1.1.1090722577.1622806657',
            'shshshfp': '2642ee3c640efeb0e9447e6545757fca',
            '__jdb': '122270672.5.1140149181|7.1622806650',
            'shshshsID': '3742c97b007a5cf7adaa9cff4323c957_3_1622806689501',
            'JSESSIONID': '81C1CD5FA9D0F18E7FFADD802EC34264.s1',
            'jwotest_product': '99',
            '3AB9D23F7A4B3C9B': '6NAODRKK6T33JSTFT3NYNWJAJQ2BCPHUZTUM73ZFAJPIMAS44RCYDE4BC6G7LRUPAWKISABMYIUWYB2LIDAMRKRPVU',
        }
        response = requests.get(url=url, headers=headers, cookies=cookies).text
        res = '"content":"(.*?)"'
        content = re.findall(res, response)
        for i in content:
            print(f"第{index}條評論:"+ i + "\n")
            index+=1
if __name__ == '__main__':
    list=url_list()
    url_parse(list)

運(yùn)行結(jié)果

image

爬取京東多頁評論生成excel表格

前面我們實(shí)現(xiàn)了爬取京東多頁評論的功能,現(xiàn)在只要利用Pandas生成excel就可以

image

def excel(i,c,t):
    x=pd.DataFrame()
    x["時(shí)間"]=t                                     //t,i,c類型為列表
    x["ID"]=i
    x["評論內(nèi)容"]=c
    x.to_excel("./京東評論.xlsx")

代碼

import requests
import re
import pandas as pd
def url_list():
    url = "https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100020318814&score=0&sortType=5&page={}&pageSize=10&isShadowSku=0&rid=0&fold=1"
    url_list=[url.format(i) for i in range(1,11)]
    return url_list
def url_parse(list):
    index = 1
    id_list = []
    content_list=[]
    time_list=[]
    for url in list:
        headers = {
            'Connection': 'keep-alive',
            'sec-ch-ua': '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"',
            'sec-ch-ua-mobile': '?0',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36',
            'Accept': '*/*',
            'Sec-Fetch-Site': 'same-site',
            'Sec-Fetch-Mode': 'no-cors',
            'Sec-Fetch-Dest': 'script',
            'Referer': 'https://item.jd.com/',
            'Accept-Language': 'zh-CN,zh;q=0.9',
        }
        cookies = {
            '__jdu': '1140149181',
            'shshshfpb': 'dxvAdGKVNzAegFZ04SPRPjw%3D%3D',
            'shshshfpa': '551d8e1b-9679-a2a9-4853-c893fad3a0c2-1588218470',
            'areaId': '13',
            'ipLoc-djd': '13-1042-3528-0',
            'unpl': 'V2_ZzNtbRBTFkYhDBZQeB4PBmIDEFwSXhYWcQERBykfWVFkBEcJclRCFnUUR1NnGFkUZwsZX0RcQBxFCEdkeBBVAWMDE1VGZxBFLV0CFSNGF1wjU00zQwBBQHcJFF0uSgwDYgcaDhFTQEJ2XBVQL0oMDDdRFAhyZ0AVRQhHZHsZWQRnBhpdS1dzJXI4dmR4HVsHZgIiXHJWc1chVERTcx1bACoDElhDV0YddQFGZHopXw%3d%3d',
            '__jdv': '76161171|baidu-pinzhuan|t_288551095_baidupinzhuan|cpc|0f3d30c8dba7459bb52f2eb5eba8ac7d_0_c5dbe5a526b24130a8d258fbc74e26de|1622806649582',
            '__jda': '122270672.1140149181.1607922153.1622723717.1622806650.7',
            '__jdc': '122270672',
            '_gcl_au': '1.1.1090722577.1622806657',
            'shshshfp': '2642ee3c640efeb0e9447e6545757fca',
            '__jdb': '122270672.5.1140149181|7.1622806650',
            'shshshsID': '3742c97b007a5cf7adaa9cff4323c957_3_1622806689501',
            'JSESSIONID': '81C1CD5FA9D0F18E7FFADD802EC34264.s1',
            'jwotest_product': '99',
            '3AB9D23F7A4B3C9B': '6NAODRKK6T33JSTFT3NYNWJAJQ2BCPHUZTUM73ZFAJPIMAS44RCYDE4BC6G7LRUPAWKISABMYIUWYB2LIDAMRKRPVU',
        }
        response = requests.get(url=url, headers=headers, cookies=cookies).text
        res_content = '"content":"(.*?)"'
        res_id = '"guid":"(.*?)"'
        res_time='"creationTime":"(.*?)"'
        content = re.findall(res_content, response)
        id= re.findall(res_id, response)
        time = re.findall(res_time, response)
        for i,c,t  in zip(id,content,time):
            id_list.append(i)
            content_list.append(c)
            time_list.append(t)
    print(id_list,content_list,time_list)
    return id_list,content_list,time_list
def excel(i,c,t):
    x=pd.DataFrame()
    x["時(shí)間"]=t
    x["ID"]=i
    x["評論內(nèi)容"]=c
    x.to_excel("./京東評論.xlsx")

if __name__ == '__main__':
    list=url_list()
    i,c,t=url_parse(list)
    excel(i,c,t)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辽聊,一起剝皮案震驚了整個(gè)濱河市纪挎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌跟匆,老刑警劉巖异袄,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異玛臂,居然都是意外死亡烤蜕,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門迹冤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讽营,“玉大人,你說我怎么就攤上這事泡徙〕髋簦” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵堪藐,是天一觀的道長莉兰。 經(jīng)常有香客問我,道長礁竞,這世上最難降的妖魔是什么糖荒? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮模捂,結(jié)果婚禮上捶朵,老公的妹妹穿的比我還像新娘蜘矢。我一直安慰自己,他們只是感情好泉孩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布硼端。 她就那樣靜靜地躺著并淋,像睡著了一般寓搬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上县耽,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天句喷,我揣著相機(jī)與錄音,去河邊找鬼兔毙。 笑死唾琼,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的澎剥。 我是一名探鬼主播锡溯,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼哑姚!你這毒婦竟也來了祭饭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤叙量,失蹤者是張志新(化名)和其女友劉穎倡蝙,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绞佩,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡寺鸥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了品山。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胆建。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖肘交,靈堂內(nèi)的尸體忽然破棺而出笆载,到底是詐尸還是另有隱情,我是刑警寧澤酸些,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布宰译,位于F島的核電站,受9級特大地震影響魄懂,放射性物質(zhì)發(fā)生泄漏沿侈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一市栗、第九天 我趴在偏房一處隱蔽的房頂上張望缀拭。 院中可真熱鬧咳短,春花似錦、人聲如沸蛛淋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽褐荷。三九已至勾效,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間叛甫,已是汗流浹背层宫。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留其监,地道東北人萌腿。 一個(gè)月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像抖苦,于是被迫代替她去往敵國和親毁菱。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容