• 淘宝商品数据分析实战


    对上一节学习笔记的代码稍作修改,就可以抓取淘宝商品中的销量并保存在txt文件中。

    程序步骤:

    1. 提交商品搜索请求,循环获取页面
    2. 对每个页面,提取商品名称、价格信息和销量
    3. 将信息输出txt文件

    代码如下:

    import requests
    import re
    
    #获取网页
    def getHTMLText(url):
         try:
              r = requests.get(url)
              r.raise_for_status()
              r.encoding = r.apparent_encoding
              return r.text
         except:
              return ""
         
    
    #使用正则表达式匹配需要的内容
         
    """
    可以在网站源码中看到价格的标签是:"view_sales":"424人付款"
    其正则表达式可以表示为:"view_sales":"[d]*人付款"
    或者使用数字加汉子匹配,汉子匹配方式如下:
    [u4E00-u9FA5\s]+      多个汉字,包括空格
    [u4E00-u9FA5]+         多个汉字,不包括空格
    [u4E00-u9FA5]          一个汉字
    
    """
    def parsePage(ilt,html):
         try:
              plt = re.findall(r'"view_price":"[d.]*"',html)
              tlt = re.findall(r'"raw_title":".*?"',html)
              vlt = re.findall(r'"view_sales":"[d]*[u4E00-u9FA5]+"',html)
              for i in range(len(plt)):
                   price = eval(plt[i].split(':')[1])
                   title = eval(tlt[i].split(':')[1])
                   sales = eval(vlt[i].split(':')[1])
                   ilt.append([price,title,sales])
         except:
              print("")
    
    
    #输出文本内容,这里我将它写入txt文件保存了起来。
    def printGoodList(ilt):
         tplt = "{:4}	{:8}	{:10}	{:16}"
         with open('bag.txt','w+') as f: 
              f.write(tplt.format("序号","价格","销量","商品名") + '
    ')
              count = 0
              for g in ilt:
                   count = count +1
                   f.write(tplt.format(count,g[0],g[2],g[1]) + '
    ')
    
    def main():
         goods = '书包'
         depth = 2
         start_url = 'https://s.taobao.com/search?q=' + goods
         infoList = []
         for i in range(depth):
              try:
                   url = start_url + '&s=' + str(44*i)
                   html = getHTMLText(url)
                   parsePage(infoList,html)
              except:
                   continue
         printGoodList(infoList)
    main()
  • 相关阅读:
    一个简单的禁止鼠标滚轮事件处理
    模仿抽奖转盘,并且用cookie记录历史次数
    学习jquery
    使用var提升变量声明
    Django 自带密码加密,自定密码加密方式 及自定义验证方式
    kindEditor使用并防止xss攻击(day88)
    python二维码生成库(qrcode)简介和实例
    js原型的区别
    js中 this与that
    python单元测试之unittest框架使用总结
  • 原文地址:https://www.cnblogs.com/BeautifulSoup/p/8455397.html
Copyright © 2020-2023  润新知