资讯专栏INFORMATION COLUMN

程序员怎样买东西呢---selenium爬取淘宝数据

Tecode / 1960人阅读

摘要:江山代有才人出各领风骚数百年清赵翼论诗五首其二长江后浪推前浪,浮事新人换旧人宋刘斧青琐高议东西用时间长了就该换新的了,特别是手机,这几年发展太快,是越来越大,内存是越来越不够用了,想要换新的手机,但不知道换什么,那今天

江山代有才人出,各领风骚数百年 ——清·赵翼 《论诗五首·其二》
长江后浪推前浪,浮事新人换旧人 ——宋·刘斧《青琐高议》

东西用时间长了就该换新的了,特别是手机,这几年发展太快,APP是越来越大,内存是越来越不够用了,想要换新的手机,但不知道换什么,那今天就爬一下淘宝,看一下淘宝手机的数据,参考一下

我的开发环境:python3.8
计算机系统:Windows10
开发工具:pycharm
要用的包:selenium、csv、time
网址:https://www.taobao.com/
今天用的是自动化测试工具selenium,没有这个包的同学可以用pip install selenium 来安装
安装完之后还需要安装个浏览器驱动,我用的是谷歌浏览器

http://chromedriver.storage.googleapis.com/index.html
打开这个链接,找到你浏览器版本所对应的驱动,这是我的浏览器版本

可以看到我的版本是94.0.4606.81 没有找到一样的就找低一个版本的

选择对应的系统,我的是win系统

把下载的压缩文件解压后,放到python解释器的当前文件夹下

验证一下

from selenium.webdriver import Chromeweb = Chrome()web.get("https://www.baidu.com")

如果正常出现网页就成功了,注意,一定要和你的版本相匹配,不然就会出现这样

这个是我把浏览器更新之后驱动版本太低不支持了

至于其他浏览器在这里就不做太多的叙述了,流程大体相同,至于网站可以在网上找一下,下面进入正题

selenium是模拟人正常在浏览器上的操作,正常我们打开网页在搜索框输入内容点击搜索

import timeimport csvfrom selenium.webdriver import Chromedef main():    win.get("https://www.taobao.com/")    win.find_element_by_xpath("//*[@id="q"]").send_keys(commodity)      # 点击搜索框,输入前面想要搜索的内容    win.find_element_by_xpath("//*[@id="J_TSearchForm"]/div[1]/button").click()     # 点击搜索按钮    win.maximize_window()       # 将网页放大方便我们扫码登录    time.sleep(15)              # 等待15秒 让我们有时间扫码if __name__ == "__main__":    commodity = input("想要查询的商品:")    win = Chrome()    main()

这里需要我们扫码登录才让我们搜索

我们在分析一下搜索界面,发现所有的商品数据都放在div标签里,可以看到不是所有的div里都有商品数据,是从第四个div开始有数据,这些div都有共同的特征,那就是属性都是一样的,可以用xpath通过class定位进行晒选


items = win.find_elements_by_xpath("//div[@class="items"]/div[@class="item J_MouserOnverReq  "]")

这里需要注意一点因为我们选取了许多个div,所以find_elements_by_xpath里的element一定要加s,这样才返回列表,前面选取搜索框和搜索按钮的时候是不加s的

将获取的div遍历取出我们想要数据

    for item in items:        # 旗舰店        store = item.find_element_by_xpath(".//div[@class="shop"]/a").text        # 商品简述        desc = item.find_element_by_xpath("./div[2]/div[2]/a").text        # 价格        price = item.find_element_by_xpath("./div[2]/div/div/strong").text        # 人数        num = item.find_element_by_xpath(".//div[@class="deal-cnt"]").text        # 地址        address = item.find_element_by_xpath(".//div[@class="location"]").text

再将获取的数据存储到以搜索名称命名的csv文件中

        with open(f"{commodity}.csv", mode="a", newline="", encoding="utf-8-sig")as f:            csv_writ = csv.writer(f, delimiter=",")            csv_writ.writerow([store, desc, price, num, address])

附上结果

这次先这样下次再将获取到的数据进行可视化生成柱状图、饼状图及地图分布

全部代码如下

import timeimport csvfrom selenium.webdriver import Chromedef get_data():    items = win.find_elements_by_xpath("//div[@class="items"]/div[@class="item J_MouserOnverReq  "]")    for item in items:        # 旗舰店        store = item.find_element_by_xpath(".//div[@class="shop"]/a").text        # 商品简述        desc = item.find_element_by_xpath("./div[2]/div[2]/a").text        # 价格        price = item.find_element_by_xpath("./div[2]/div/div/strong").text        # 人数        num = item.find_element_by_xpath(".//div[@class="deal-cnt"]").text        # 地址        address = item.find_element_by_xpath(".//div[@class="location"]").text        with open(f"{commodity}.csv", mode="a", newline="", encoding="utf-8-sig")as f:            csv_writ = csv.writer(f, delimiter=",")            csv_writ.writerow([store, desc, price, num, address])def main():    win.get("https://www.taobao.com/")    win.find_element_by_xpath("//*[@id="q"]").send_keys(commodity)      # 点击搜索框,输入前面想要搜索的内容    win.find_element_by_xpath("//*[@id="J_TSearchForm"]/div[1]/button").click()     # 点击搜索按钮    win.maximize_window()       # 将网页放大方便我们扫码登录    time.sleep(15)              # 等待15秒 让我们有时间扫码    get_data()if __name__ == "__main__":    commodity = input("想要查询的商品:")    win = Chrome()    main()

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/122484.html

相关文章

  • selenium跳过webdriver检测并爬取淘宝我已购的宝贝数据

    摘要:简介上一个博文已经讲述了如何使用跳过检测并爬取天猫商品数据,所以在此不再详细讲,有需要思路的可以查看另外一篇博文。 简介 上一个博文已经讲述了如何使用selenium跳过webdriver检测并爬取天猫商品数据,所以在此不再详细讲,有需要思路的可以查看另外一篇博文。 源代码 # -*- coding: utf-8 -*- from selenium import webdr...

    banana_pi 评论0 收藏0
  • 爬取淘宝上4000条月饼数据,制作了一个酷炫的可视化大屏!

    摘要:基于此,我爬取了淘宝上多条月饼的销售数据,为大家展示了一幅漂亮的可视化大屏,解决大家心目中的问题。模块的安装与配置这次爬取淘宝,采用的是最简单的方式控制浏览器进行自动化操作,中途只需要扫码登陆一次,即可完成整个数据的爬取。 ...

    cod7ce 评论0 收藏0
  • selenium跳过webdriver检测并爬取天猫商品数据

    摘要:简介现在爬取淘宝,天猫商品数据都是需要首先进行登录的。把关键点放在如何爬取天猫商品数据上。是一款优秀的自动化测试工具,所以现在采用进行半自动化爬取数据。以开头的在中表示类名,以开头的在中表示名。 简介 现在爬取淘宝,天猫商品数据都是需要首先进行登录的。上一节我们已经完成了模拟登录淘宝的步骤,所以在此不详细讲如何模拟登录淘宝。把关键点放在如何爬取天猫商品数据上。 过去我曾经使用get/p...

    codecook 评论0 收藏0
  • selenium跳过webdriver检测并模拟登录淘宝

    摘要:是一款优秀的自动化测试工具,所以现在采用进行半自动化爬取数据,支持模拟登录淘宝和自动处理滑动验证码。编写思路由于现在大型网站对工具进行检测,若检测到,则判定为机器人,访问被拒绝。以开头的在中表示类名,以开头的在中表示名。 简介 模拟登录淘宝已经不是一件新鲜的事情了,过去我曾经使用get/post方式进行爬虫,同时也加入IP代理池进行跳过检验,但随着大型网站的升级,采取该策略比较难实现了...

    tulayang 评论0 收藏0
  • Python爬虫学习路线

    摘要:以下这些项目,你拿来学习学习练练手。当你每个步骤都能做到很优秀的时候,你应该考虑如何组合这四个步骤,使你的爬虫达到效率最高,也就是所谓的爬虫策略问题,爬虫策略学习不是一朝一夕的事情,建议多看看一些比较优秀的爬虫的设计方案,比如说。 (一)如何学习Python 学习Python大致可以分为以下几个阶段: 1.刚上手的时候肯定是先过一遍Python最基本的知识,比如说:变量、数据结构、语法...

    liaoyg8023 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<