利用爬蟲爬取京東商品的評論信息


        在之前利用爬蟲爬取網頁的時候只是用到了html解析,但要獲得大量的評論內容時,只從html頁面解析並不能滿足要求,那么只能直接獲取相關數據

        進入京東商品界面,F12打開開發人員工具,打開network

        刷新頁面,會發現大量內容出現

        點擊評論,查看評論信息,開發人員工具也會隨着增加內容,新增加的內容會在工具中的時間軸動態的出現

可以如上圖在時間軸上划定范圍,減少要查看的內容。

       記下來查看內容,選擇符合要求的如

      內容的url地址是有一定的規律的:如上面內容的地址

https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=10337898566&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1

 其中score表示用戶評論的分類,0是全部分類,1是差評分類;page代表內容的頁數,等同於頁面上的一頁評論。page最多為99,因為京東頁面前端最多提供100頁的評論,爬蟲能爬取大量的內容是通過修改該參數進行的

        接下來就是用爬蟲對內容進行相關的爬取和解析了

from bs4 import BeautifulSoup
import requests

Headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
               'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'
}

def getData(page):
    #內容url
    url='https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100014352539&score=1&sortType=5&page='+str(page)+'&pageSize=10&isShadowSku=0&fold=1'
    
    response=requests.get(url=url,headers=Headers,timeout=10)
    soup=BeautifulSoup(response.text,'lxml')

    #對獲得的頁面字符進行處理,並轉成字典
    context=eval(soup.find("p").text.replace("fetchJSON_comment98(","").replace(");","").replace("null","None").replace("false","False").replace("true","True"))
    print(type(context))
    print(context)

    
    
if __name__=='__main__':
    for i in range(0,100):
        getData(i)
        n=random.randint(1,5)
        time.sleep(n)

 代碼中有將程序循環延時1-5秒的操作是因為京東的反爬,沒有時間延時的話很快就會被封

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM