怎样用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)

相关推荐

  • 广东去哪里旅游比较好,广东有什么地方好玩又便宜啊

    技术广东去哪里旅游比较好,广东有什么地方好玩又便宜啊广州→梅关→始兴→丹霞→连南→英德 风情 指北针向着广州正北方位,出发广东去哪里旅游比较好! 在粤北,广袤的山区是客家人的领地,这个组分了广东三大人系中最大数量的人群,

    生活 2021年10月28日
  • mydumper怎么用

    技术mydumper怎么用小编给大家分享一下mydumper怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!下载:https://laun

    攻略 2021年11月2日
  • 如何实现S/4HANA和CRM费奥里应用的搜索分页

    技术如何进行S/4HANA和CRM Fiori应用的搜索分页实现这期内容当中小编将会给大家带来有关如何进行S/4HANA和CRM Fiori应用的搜索分页实现,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希

    攻略 2021年12月18日
  • 在facebook上如何找客户

    技术在facebook上如何找客户这篇文章给大家介绍在facebook上如何找客户,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。做外贸肯定离不开facebook,因为上面存在着大量的精准用户,但很多

    攻略 2021年11月4日
  • 怎么写出优质干净的代码

    技术怎么写出优质干净的代码本篇内容主要讲解“怎么写出优质干净的代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么写出优质干净的代码”吧!写干净代码的好处先来了解编写干净代

    攻略 2021年11月2日
  • 适用于Python的编写工具有哪些

    技术适用于Python的编写工具有哪些本篇内容主要讲解“适用于Python的编写工具有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“适用于Python的编写工具有哪些”吧

    攻略 2021年11月3日