淘宝销量获取

 想爬取什么数据你们可以在文章下面评论一下,我好锻炼一下自己的爬虫能力,当然源码会给你们放出来。我们今天就使用自动化爬取数据,自动化的话就是人可以怎么操作,机器就可以怎么操作。用到的工具chromedrive.exe,下载地址:

 

https://npm.taobao.org/mirrors/chromedriver。这个工具下载安装好后要把这个chromedriver.exe复制到跟你的解释器同一目录之下cmd 中 where python, chromedriver.exe 跟 python.exe(指定执行pycharm这个python解释器) 放在一起

不会我下一篇文章会写。我看了其他博主写得都不太详细。我们这里用的是谷歌浏览器。

用到的包是selenium.我们可以到cmd里面输入pip install selenium 回车就会自动下载这个包。

这里selenium的使用可以看这个博主的。Python Selenium库的使用_凯耐的博客-CSDN博客_python selenium

from selenium.webdriver import Chrome
#导包
if __name__ == '__main__':
    chrome_obj = Chrome()
    #因为是个类,所以要创建一个对象。
    chrome_obj.get('https://uland.taobao.com/sem/tbsearch?refpid=mm_26632258_3504122_32538762&keyword=%E5%A5%B3%E8%A3%85&clk1=ab1fdcf6365ee8bc6248263f22f49a33&upsId=ab1fdcf6365ee8bc6248263f22f49a33')  # 往浏览器的网页地址栏填入淘宝网址

这里我们运行一下发现他会自动打开我们的浏览器并打开我们的淘宝网。但是我们打开看见的是女装。如果我们要搜索男装我们有两种方法1:可以输入男装的URL 2:还可以使用selenium的点击输入。

from selenium.webdriver import Chrome
#导包
if __name__ == '__main__':
    chrome_obj = Chrome()
    #因为是个类,所以要创建一个对象。
    chrome_obj.get('https://uland.taobao.com/sem/tbsearch?refpid=mm_26632258_3504122_32538762&keyword=%E5%A5%B3%E8%A3%85&clk1=ab1fdcf6365ee8bc6248263f22f49a33&upsId=ab1fdcf6365ee8bc6248263f22f49a33')  # 往浏览器的网页地址栏填入淘宝网址
    #先定位到搜索框
    input_obj = chrome_obj.find_element_by_xpath('//*[@id="J_search_key"]').clear()
    # 输入搜索框数据
    input_obj = chrome_obj.find_element_by_xpath('//*[@id="J_search_key"]').send_keys('男装')
    #定位到点击搜索按钮
    click_obj = chrome_obj.find_element_by_xpath('//*[@id="J_searchForm"]/input')
    # 触发点击
    click_obj.click()
    
    #关闭浏览器
    chrome_obj.quit()

这样就完成了输入男装并搜索。

接下来就是数据解析。我一般都是使用xpath,正则不太熟悉。

 

 我们可以看到数据使用xpath解析出来了。那接下来就是搞代码了。

 

运行发现成功了,接下来的是对数据合并。

 

数据合并后就是这样了。源码附上:

from selenium.webdriver import Chrome
import time
from lxml import etree
import json
#导包
if __name__ == '__main__':
    chrome_obj = Chrome()
    #因为是个类,所以要创建一个对象。
    chrome_obj.get('https://uland.taobao.com/sem/tbsearch?refpid=mm_26632258_3504122_32538762&keyword=%E5%A5%B3%E8%A3%85&clk1=ab1fdcf6365ee8bc6248263f22f49a33&upsId=ab1fdcf6365ee8bc6248263f22f49a33')  # 往浏览器的网页地址栏填入淘宝网址
    #先定位到搜索框
    input_obj = chrome_obj.find_element_by_xpath('//*[@id="J_search_key"]').clear()
    # 输入搜索框数据
    input_obj = chrome_obj.find_element_by_xpath('//*[@id="J_search_key"]').send_keys('男装')
    #定位到点击搜索按钮
    click_obj = chrome_obj.find_element_by_xpath('//*[@id="J_searchForm"]/input')
    # 触发点击
    click_obj.click()

    # 页面等待,等待数据加载完毕
    time.sleep(2)

    # 获取源码数据
    html_data = chrome_obj.page_source

    # 数据的提取:
    html_obj = etree.HTML(html_data)

    # 商品名
    name_list = html_obj.xpath('//div/span[@class="title-text"]/text()')
    print(name_list)
    #商品销量
    sell_info = html_obj.xpath('//div/div[@class="sell-info"]/text()')
    print(sell_info)
    #商品价格//div/span[@class="coupon-price-afterCoupon"]/text()
    jiage = html_obj.xpath('//div/span[@class="coupon-price-afterCoupon"]/text()')
    print(jiage)
    with open('taibao01.json', 'w', encoding='utf-8') as f:
        for i in range(len(name_list)):
            dict_ = {}
            dict_[name_list[i]] = sell_info[i]
            json_data = json.dumps(dict_, ensure_ascii=False) + ',\n'
            f.write(json_data)
    #关闭浏览器
    chrome_obj.quit()


 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖子是个潜力股

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值