怎样用Python爬取京东的价格和标题及评价等商品情况

技术怎样用Python爬取京东的价格和标题及评价等商品情况这篇文章将为大家详细讲解有关怎样用Python爬取京东的价格和标题及评价等商品情况,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知

这篇文章将为大家详细讲解有关怎样用计算机编程语言爬取京东的价格和标题及评价等商品情况,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

前言

代码实现

导入请求

fromlxmlimportetree

进口时间

导入随机

importpandasaspd

importjson

fromsqlalchemyimportcreate _ engine

来自sqlalchemy。万瓜格斯。oracleimportdate,FLOAT,NUMBER,VARCHAR2

importcx_Oracle先导入需要用的包

defcreate _ table(table _ name):

conn=cx_Oracle.connect('用户/密码@ ip:端口/数据库)

cursor=conn.cursor()

创建_姬寿='''CREATETABLE{}(商品IDVARCHAR2(256),价格数字(19,8),店名VARCHAR2(256),店属性VARCHAR2(256),标题VARCHAR2(256),评论数字(19),优评论数字(19))' '。格式(表名)

光标。执行(创建_姬寿)

cursor.close()

conn.close()建表

def映射_ df _ type(df _ pro):

dtypedict={}

fori,jinzip(df_pro.columns,df_pro.dtypes):

如果"对象"定义类型的映射

defsava_oracle(df_pro):

engine=create _ engine(' Oracle ://用户:密码@ IP :端口/数据库')

dtypedict=mapping _ df _ types(df _ pro)

df_pro.to_sql('姬寿,con=引擎,索引=False,if_exists='append ',dtype=dtypedict)定义请求头和请求方法

ers={
      '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爬取京东的价格和标题及评价等商品情况就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/49006.html

(0)

相关推荐

  • 猪宝宝小名,你孩子的名字是自己起的吗

    技术猪宝宝小名,你孩子的名字是自己起的吗是的,把我和孩子带坑里去了猪宝宝小名。尤其是我女儿的。生产前并不知道性别,所以就没先给孩子取名,出生后也才被告知要3天内取名,所以当时挺急的,女儿又是双方家庭的第一个孩子。此为背景

    生活 2021年10月30日
  • 如何分析python中有序可变的数据集合List

    技术如何分析python中有序可变的数据集合List如何分析python中有序可变的数据集合List,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。列表是一个

    攻略 2021年12月4日
  • MySql2005的小漏洞是什么

    技术MySql2005的小漏洞是什么本篇文章给大家分享的是有关MySql2005的小漏洞是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。如果在MySql

    攻略 2021年11月16日
  • R语言如何使用RcppEigen进行矩阵运算

    技术R语言如何使用RcppEigen进行矩阵运算这篇文章主要介绍了R语言如何使用RcppEigen进行矩阵运算,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下

    攻略 2021年11月6日
  • 清除ehcache缓存方法(ehcache分布式缓存怎么清除)

    技术如何使用@CacheEvict清除指定下所有缓存这篇文章将为大家详细讲解有关如何使用@CacheEvict清除指定下所有缓存,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了

    攻略 2021年12月25日
  • 考公务员学什么专业好,考公务员,读什么专业好

    技术考公务员学什么专业好,考公务员,读什么专业好第一名考公务员学什么专业好:经济学
    一般情况下,公务员考试的所有岗位占比中,经济类岗位占比是最多的,考生不仅选择面广,而且可以在各个单位,各个岗位间抉择,可以说在考公务员的

    生活 2021年10月21日