Python爬取京东商品评论 淡淡的烟草味﹌ 2024-03-26 22:31 21阅读 0赞 ### 寻找数据真实接口 ### 打开京东商品网址查看商品评价。我们点击评论翻页,发现网址未发生变化,说明该网页是动态网页。 ![8d053a0ddeff4b16a598e110c869b8e3.png][] ![1437e5b40224470babb06bbf3e4e2344.png][] ### API名称:item\_review-获得JD商品评论 ### 公共参数 [获取API测试key&secret][API_key_secret] <table> <thead> <tr> <th>名称</th> <th>类型</th> <th>必须</th> <th>描述</th> </tr> </thead> <tbody> <tr> <td>key</td> <td>String</td> <td>是</td> <td>调用key(必须以GET方式拼接在URL中)</td> </tr> <tr> <td>secret</td> <td>String</td> <td>是</td> <td>调用密钥</td> </tr> <tr> <td>api_name</td> <td>String</td> <td>是</td> <td>API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]</td> </tr> <tr> <td>cache</td> <td>String</td> <td>否</td> <td>[yes,no]默认yes,将调用缓存的数据,速度比较快</td> </tr> <tr> <td>result_type</td> <td>String</td> <td>否</td> <td>[json,jsonu,xml,serialize,var_export]返回数据格式,默认为json,jsonu输出的内容中文可以直接阅读</td> </tr> <tr> <td>lang</td> <td>String</td> <td>否</td> <td>[cn,en,ru]翻译语言,默认cn简体中文</td> </tr> <tr> <td>version</td> <td>String</td> <td>否</td> <td>API版本</td> </tr> </tbody> </table> 请求参数 请求参数:num\_iid=71619129750&page=1 参数说明:item\_id:商品ID page:页数 响应参数 Version: Date: <table> <thead> <tr> <th>名称</th> <th>类型</th> <th>必须</th> <th>示例值</th> <th>描述</th> </tr> </thead> <tbody> <tr> <td> <p>items</p> </td> <td>items[]</td> <td>0</td> <td></td> <td>获得JD商品评论</td> </tr> <tr> <td> <p>rate_content</p> </td> <td>String</td> <td>0</td> <td>这个帆布鞋的款式挺不错的,穿着也很百搭,做工很精细。!</td> <td>评论内容</td> </tr> <tr> <td> <p>rate_date</p> </td> <td>Date</td> <td>0</td> <td>2020-07-16 17:04:45</td> <td>评论日期</td> </tr> <tr> <td> <p>pics</p> </td> <td>MIX</td> <td>0</td> <td>["//img30.360buyimg.com/n0/s128x96_jfs/t1/143538/26/2997/98915/5f10182dE075cf6f4/3893a6ebd54bf20b.jpg"]</td> <td>评论图片</td> </tr> <tr> <td> <p>display_user_nick</p> </td> <td>String</td> <td>0</td> <td>j***X</td> <td>买家昵称</td> </tr> <tr> <td> <p>auction_sku</p> </td> <td>String</td> <td>0</td> <td>颜色:白色(加绒);尺码:2XL</td> <td>评论商品属性</td> </tr> <tr> <td> <p>add_feedback</p> </td> <td>String</td> <td>0</td> <td>衣服面料很好 穿起来很舒服 衣服挺合适的!</td> <td>追评内容</td> </tr> </tbody> </table> ### 通过循环,爬取所有页面的评论数据 ### 翻页爬取的关键是找到真实地址的“翻页”规律。我们分别点击第1页、第2页、第3页,发现不同页码的除了page参数不一致,其余相同。第1页的“page”是1,第2页的“page”是2,第2页的“page”是2,以此类推。 我们嵌套一个For循环,并通过pandas存储数据。运行代码让其自动爬取其他页面的评论信息,并储存t.xlsx的文件中。 所有代码如下: import requests import pandas as pd items=[] for i in range(1,20): header = {'User-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.1.4031 SLBChan/105'} url=f'https://api.m.jd.com/?appid=item-v3&functionId=pc_club_productPageComments&client=pc&clientVersion=1.0.0&t=1684832645932&loginType=3&uuid=122270672.2081861737.1683857907.1684829964.1684832583.3&productId=100009464799&score=0&sortType=5&page={i}&pageSize=10&isShadowSku=0&rid=0&fold=1&bbtf=1&shield=' response= requests.get(url=url,headers=header) json=response.json() data=json['comments'] for t in data: content =t['content'] time =t['creationTime'] item=[content,time] items.append(item) df = pd.DataFrame(items,columns=['评论内容','发布时间']) df.to_excel(r'C:\Users\蓝胖子\Desktop\t.xlsx',encoding='utf_8_sig') 最后,得到爬取的数据结果如下: ![图片][20229ac39320896ffe182a2f1c371ece.png] [8d053a0ddeff4b16a598e110c869b8e3.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/13/b161ade88fde4bdf83da8f2ae91022ab.png [1437e5b40224470babb06bbf3e4e2344.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/13/fac1d447df424b1ea46f586f6765755a.png [API_key_secret]: https://o0b.cn/jennif [20229ac39320896ffe182a2f1c371ece.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/13/b359d3a39aa4463b88458cb551eee794.png
还没有评论,来说两句吧...