如何采集京东搜索页面商品的销量、价格数据?

这段Python代码旨在从京东网站上获取商品信息,包括评论数量和评论的关键词,以便进行进一步的分析。该程序分析并模拟了京东的JavaScript请求,以获取动态加载的评论数据。

代码都测试验证过都能正常跑通,实现效果,由于各大网站防爬机制随时可能更新,代码可能失效。思路可以参考

代码主要分为四个部分:

get_product_ids(url): 这个函数通过提供的URL访问京东网站的搜索页,然后从HTML中提取所有商品的ID。

get_comment_summary(product_id): 这个函数接受一个商品ID作为参数,然后向京东的评论概要API发送请求,获取并返回该商品的评论摘要信息,其中包括评论的总数。

get_comment_tags(product_id): 这个函数也接受一个商品ID作为参数,然后向京东的评论标签API发送请求,获取并返回该商品的评论标签,即评论的关键词。

main(url): 这是主函数,它首先从提供的URL获取所有商品的ID,然后对每个商品ID调用上述两个函数获取评论摘要和评论标签,最后将获取的所有数据保存到一个Excel文件中。

import requestsimport jsonimport pandas as pdfrom bs4 import BeautifulSoup# Xpanx.com 专业网络爬虫程序定制,加微信 LiteMango(付费)def get_product_ids(url):    headers = {"User-Agent": "Mozilla/5.0"}    r = requests.get(url, headers=headers)    soup = BeautifulSoup(r.text, "html.parser")    product_ids = [item['data-sku'] for item in soup.find_all('li', class_='gl-item')]    return product_ids
def get_comment_summary(product_id):    comment_summary_url = f'https://club.jd.com/comment/productCommentSummaries.action?referenceIds={product_id}'    headers = {"User-Agent": "Mozilla/5.0"}    r = requests.get(comment_summary_url, headers=headers)    comment_summary = r.json()['CommentsCount'][0]    return comment_summary
def get_comment_tags(product_id):    comment_tags_url = f'https://club.jd.com/comment/productPageComments.action?productId={product_id}&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1'    headers = {"User-Agent": "Mozilla/5.0"}    r = requests.get(comment_tags_url, headers=headers)    comment_tags = r.json()['hotCommentTagStatistics']    return comment_tags
def main(url):    product_ids = get_product_ids(url)    data = []    for product_id in product_ids:        comment_summary = get_comment_summary(product_id)        comment_tags = get_comment_tags(product_id)        data.append([product_id, comment_summary, comment_tags])    df = pd.DataFrame(data, columns=['Product ID', 'Comment Summary', 'Comment Tags'])    df.to_excel('jd_comments.xlsx', index=False)
if __name__ == "__main__":    url = "https://search.jd.com/Search?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8&wq=%E6%89%8B%E6%9C%BA&pvid=541bde5713154895ad650c43c4167c10"    main(url)

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值