• 【Python爬虫】爬取淘宝商品数据——新手教程


    大数据时代,

    数据收集不仅是科学研究的基石,

    更是企业决策的关键。

    然而,如何高效地收集数据

    成了摆在我们面前的一项重要任务。

    本文将为你揭示,

    一系列实时数据采集方法,

    助你在信息洪流中,

    找到真正有价值的信息。

    提升方法


    今天,我们就用python爬取淘宝上某一商品的数据

    Python版本:Python3.6

    浏览器:谷歌
    一键爬取

    目的:爬取淘宝上所有卖高跟鞋的商家的商品名称、商品价格、付款人数、店铺和发货地址,将爬取到的数据保存在data.csv文件中

    一、输入关键词和网址

    1. keywords = '高跟鞋'
    2. while 1:
    3. try:
    4. driver = webdriver.Chrome()
    5. break
    6. except:
    7. time.sleep(1)
    8. driver.get('https://www.taobao.com/')
    9. page = search_product(keywords)

    关键词keywords为高跟鞋,while的目的是防止出现因为网不好导致报错。这一部分运行后,会自动打开淘宝官网,并将关键词自动输入。

    二、构建存储表格

    1. with open('data.csv','a',newline='') as filecsv:
    2. csvwriter = csv.writer(filecsv,delimiter = ',')
    3. csvwriter.writerow(['商品名称','商品价格','付款人数','店铺','发货地址'])
    4. get_product()
    5. page_num = 1

    三、爬取每一页的商品数据

    1. while page_num != page:
    2. print('正在爬取第'+str(page_num)+'页数据')
    3. driver.get('https://s.taobao.com/search?q='+keywords+'&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.2&ie=utf8&initiative_id=tbindexz_20170306&bcoffset=3&ntoffset=3&p4ppushleft=1%2C48&s='+str(page_num*44))
    4. driver.implicitly_wait(2) #浏览器等待 因为爬取速度过快
    5. driver.maximize_window() #浏览器最大化
    6. get_product()
    7. page_num = page_num+1
    8. def get_product():
    9. divs = driver.find_elements_by_xpath('//div[@class="items"]/div[@class="item J_MouserOnverReq "]')
    10. product = {}
    11. product_all = {}
    12. with open('data.csv','a',newline='') as filecsv:
    13. csvwriter = csv.writer(filecsv,delimiter = ',')
    14. for id_product,div in enumerate(divs):
    15. product['info'] = div.find_elements_by_xpath('.//div[@class="row row-2 title"]')[0].text
    16. product['price'] = div.find_elements_by_xpath('.//div[@class="price g_price g_price-highlight"]/strong')[0].text+'元'
    17. product['Number_of_people'] = div.find_elements_by_xpath('.//div[@class="deal-cnt"]')[0].text
    18. product['address'] = div.find_elements_by_xpath('.//div[@class="location"]')[0].text
    19. product['Shop'] = div.find_elements_by_xpath('//div[@class="shop"]/a/span[2]')[0].text
    20. # with open('data.csv','a',newline='') as filecsv:
    21. # csvwriter = csv.writer(filecsv,delimiter = ',')
    22. csvwriter.writerow([product['info'],product['price'],product['Number_of_people'],product['Shop'],product['address']])

    page为需要爬取的总页数,在本代码中为所有页码,如果只需要前10页,可手动将其改为10。

    driver.implicitly_wait(2) 为页面等待两秒,是为了防止网址发现是爬虫而不让爬取数据。

    driver.implicitly_wait(2) 函数为提取每一页商品的具体数据。

    最后的保存结果为:

  • 相关阅读:
    【微信小程序】常用组件基本使用(viewscroll-viewswiper、textrich-text、buttonimage)
    初识Cpp之 三、Cpp预处理器
    vue2结合electron开发桌面端应用
    升讯威在线客服系统客服端英文界面的技术实现方法,客户落地巴西圣保罗
    命令行错误 D8016:卢友亮 ucos ii 在vs2019 编译报错
    前后端通信到底是怎样一个过程
    MySQL数据库的卸载
    解决微信小程序回调地狱问题
    【C语言】学数据结构前必学的结构体struct详细
    hot100-LRU缓存
  • 原文地址:https://blog.csdn.net/2301_76767228/article/details/138162768