怎样用Python爬取京东的价格和标题及评价等商品情况
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关怎样用Python爬取京东的价格和标题及评价等商品情况,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前言代码实现impor
千家信息网最后更新 2026年11月03日怎样用Python爬取京东的价格和标题及评价等商品情况
这篇文章将为大家详细讲解有关怎样用Python爬取京东的价格和标题及评价等商品情况,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
前言
代码实现
import requestsfrom lxml import etreeimport timeimport randomimport pandas as pdimport jsonfrom sqlalchemy import create_enginefrom sqlalchemy.dialects.oracle import DATE,FLOAT,NUMBER,VARCHAR2 import cx_Oracle
先导入需要用的包
def create_table(table_name): conn = cx_Oracle.connect('user/password@IP:port/database') cursor = conn.cursor () create_shouji = ''' CREATE TABLE {}( 商品ID VARCHAR2(256), 价格 number(19,8), 店名 VARCHAR2(256) , 店属性 VARCHAR2(256) , 标题 VARCHAR2(256) , 评论 NUMBER(19), 优评论 NUMBER(19) ) '''.format(table_name) cursor.execute(create_shouji) cursor.close() conn.close()建表
def mapping_df_types(df_pro): dtypedict = {} for i, j in zip(df_pro.columns, df_pro.dtypes): if "object">定义类型的映射
def sava_oracle(df_pro): engine = create_engine('oracle://user:password@ip:port/database') dtypedict = mapping_df_types(df_pro) df_pro.to_sql("shouji",con=engine,index=False,if_exists='append',dtype=dtypedict)定义请求头和请求方法
headers={ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 Edg/83.0.478.37'}def requesturl(url): session = requests.Session() rep = session.get(url,headers=headers) return rep解析评论的url
def commreq(url_comm): dd_commt = pd.DataFrame(columns=['商品ID','评论','优评论']) session = requests.Session() rep_comm = session.get(url_comm,headers=headers) comment = json.loads(rep_comm.text)['CommentsCount'] comment_list = [] for i in comment: comment_list.append({'商品ID':str(i['ProductId']),'评论':i['CommentCount'],'优评论':i['GoodCount']}) dd_commt = dd_commt.append(comment_list) return dd_commt主体解析
def parse(rep): df = pd.DataFrame(columns=['商品ID','价格','店名','店属性','标题']) html = etree.HTML(rep.text) all_pro = html.xpath("//ul[@class='gl-warp clearfix']/li") proid = ','.join(html.xpath("//li/@data-sku")) # 商品评价url # referenceIds=之后到&callback之前,都是商品的id,只需要在商品列表获取商品id拼接即可 # 1. 评论解析 url_comm = r'https://club.jd.com/comment/productCommentSummaries.action?referenceIds={}'.format(proid) dd_commt = commreq(url_comm) # 2. 商品列表信息解析 pro_list = [] for product in all_pro: proid = ''.join(product.xpath("@data-sku")) price = ''.join(product.xpath("div[@class='gl-i-wrap']//strong/i/text()")) target = ''.join(product.xpath("div[@class='gl-i-wrap']//a/em//text()")).replace('\t\n','').replace('\\u2122','') shopname = ''.join(product.xpath("div[@class='gl-i-wrap']//span/a/@title")) shoptips = product.xpath("div[@class='gl-i-wrap']//i[contains(@class,'goods-icon')]/text()") if '自营' in shoptips: shoptips='自营' else: shoptips='非自营' pro_list.append(dict(商品ID=proid,价格=price,店名=shopname,店属性=shoptips,标题=target)) df = df.append(pro_list) # 3. 合并商品评论和列表 df_pro = pd.merge(df,dd_commt,on='商品ID') return df_pro加入主程序
if __name__ == "__main__": create_table('shouji') for i in range(1,81): url = 'https://search.jd.com/s_new.php?keyword=手机&wq手机&ev=3613_104528%5E&page={0}&s=30'.format(i) rep = requesturl(url) df_pro = parse(rep) sava_oracle(df_pro) time.sleep(random.randrange(1,4)) print('完成:',i)关于怎样用Python爬取京东的价格和标题及评价等商品情况就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
商品
评论
价格
标题
评价
属性
店名
情况
京东
内容
手机
文章
更多
知识
篇文章
不错
主体
主程序
代码
信息
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司
互联网新科技
深圳九邦互联网科技有限公司
蓝思科技飞鸽互联网
互联网科技公司怎么样
卓越科技(互联网 )
上海喔噻互联网科技
互联网金融科技平台
多迪互联网科技有限公司
恒生科技互联网指数分析
老年人脱离互联网科技的作文
黑科技闪耀互联网之光
互联网科技革命什么开始
新兴科技互联网创新大赛颁奖典礼
成都互联网科技公司工作好不好
高科技互联网套路
广州富喜互联网络科技
互联网科技快讯热点
互联网高科技行业有哪些企业
第三届互联网大会安防黑科技
互联网金融与金融科技
互联网公司会议桌创意科技软装饰
西藏七维空间互联网科技有限公司
北京华百购互联网科技有限公司
岳阳华臻互联网科技有限公司
国大互联网教育科技有限公司工作
乌苏新华互联网科技做什么的
互联网领先科技宣传片
易企秀互联网科技是做什么的
互联网科技手抄报图片