看了一眼,上次更新距今2个月,看起来我好咕咕啊(感叹),可是感觉这两个月也没闲着捏(比赛,cf,期末等等,幸亏期末考延期了,我这被期末作业都整死了快),只是懒得更博客而言(逃跑),本来打算把整理完的spss小测知识点发上来,但是操作部分没整理,就爬了(而且懒得截图)

不更题解大概是因为那段时间和学弟一起刷题,回答问题当作写题解了。

and明明已经在家一个月了,ip地址还在广东哈哈哈哈,侧面证明我是老鸽子。

别问比赛,问就是翻车。

感觉接下来能更新的东西也挺多的,再说吧(准备面实习了)。


这是本学期数据挖掘的期末大作业,作业要求上写不允许全程抄网上或其他同学的代码,以防误伤到我自己,先叠一层buff,截个图证明一下自己(防止有异议,发布博客之后就不改了)

第二层buff:文章的标题没有写很得详细(如果有幸被同学刷到那跟我没关啊)

第三层buff:会省略一些细节类的东西,大家加油!(不过我觉得应该没啥人会选这个题目,因为后面两个可以直接在上次小测的代码改,比这轻松多了,话说回来要是没事干我也可以把后面两个写了23333)


回归正题,这个大作业的要求是“淘宝(https://www.taobao.com/)上搜索a,价格区间l-r,抓取前k页的商品名、商品链接、价格、付款人数、商家名、商家链接总共6项信息(输出为excel文件)。”

第一个要求,在淘宝上搜索a物品,并遍历前k页。按理来说,这种事情可以直接通过找链接的规律来进行,不过老师要求了用selenium来处理,那就用吧

不过有一个问题是:淘宝搜索需要登陆,而selenium生成的浏览器可是啥都没有滴。

我这里使用了调用本地的登陆信息来处理

selenium的精髓就在于找到元素位置,直接模拟

具体的看注释(QAQ我老想打成//,老acmer了)

option = webdriver.ChromeOptions()#实例化谷歌设置选项
option.add_argument(r"user-data-dir=C:\Users\xxx\AppData\Local\Google\Chrome\User Data")#本地的chrome登陆信息,添加保持登录的数据路径
driver = webdriver.Chrome(options=option)#初始化driver
driver.get("https://www.taobao.com/")#打开淘宝
driver.find_element(By.XPATH, '//*[@id="q"]').clear()#清除
driver.find_element(By.XPATH, '//*[@id="q"]').send_keys("a")#输入a
driver.find_element(By.XPATH, '//*[@id="J_TSearchForm"]/div[1]/button').click()#点击搜索

下一步,我们要设置价格区间

driver.find_element(By.XPATH, '//*[@id="J_relative"]/div[1]/div/div[1]/div[1]/div/ul/li[1]/input').send_keys("l")#最小价格
driver.find_element(By.XPATH, '//*[@id="J_relative"]/div[1]/div/div[1]/div[1]/div/ul/li[3]/input').send_keys("r")#最大价格
driver.find_element(By.XPATH, '//*[@id="J_relative"]/div[1]/div/div[1]/div[1]/div/ul/li[4]/button').click()#点击确认

接下来,就是要枚举每一页,因为如果翻页的话中间出bug了后面就无了,所以还是用输入页码的方式比较保险

更保险的方法应该是写个try跳过bug,但我懒,就不写了

啊,注释太详细搞得我现在没话说,想整活

插播一段小故事:这两天在写作业(不止这门),我妈疑惑的问我:你在写专业作业还是写辅修的?我:专业课作业QAQ

谁能想到一个文科生天天在写代码捏

for i in range(1,k+1):#页码driver.find_element(By.XPATH, '//*[@id="mainsrp-pager"]/div/div/div/div[2]/input').clear()driver.find_element(By.XPATH, '//*[@id="mainsrp-pager"]/div/div/div/div[2]/input').send_keys("{}".format(i))#输入页码driver.find_element(By.XPATH, '//*[@id="mainsrp-pager"]/div/div/div/div[2]/span[3]').click()#点击确认print("正在爬取第{}页".format(i))

接下来,我们已经到了我们要的页面,那么我们就该找找我们需要的这些信息的位置啦(顺带一提,我的python码风神似c++,改不了啦)

这里辨析一下find_elements和find_element这两个函数,由于我前面设置本地登陆信息的时候得更新到最新版,所以find_elements_by_xpath这种就不能用了。然后没加s的返回第一个符合条件的元素,加了s的返回所有符合条件的元素的集合

    list=driver.find_elements(By.XPATH, '//*[@class="price g_price g_price-highlight"]/strong')for j in list:list_price.append(j.text)#//*[@class="deal-cnt"] 人数list=driver.find_elements(By.XPATH, '//*[@class="deal-cnt"]')for j in list:list_number.append(j.text)#//*[@class="row row-2 title"] 商品名list=driver.find_elements(By.XPATH, '//*[@class="row row-2 title"]')for j in list:list_goods.append(j.text)#//*[@class="row row-2 title"] 链接list=driver.find_elements(By.XPATH, '//*[@class="row row-2 title"]/a')for j in list:a = j.get_attribute('href')list_goods_link.append(a)#//*[@class="shop"]/a/span[2] 店名list=driver.find_elements(By.XPATH, '//*[@class="shop"]/a/span[2]')for j in list:list_shop.append(j.text)#//*[@class="shop"]/a 链接list=driver.find_elements(By.XPATH, '//*[@class="shop"]/a')for j in list:a = j.get_attribute('href')list_shop_link.append(a)

说到集合,因为每个页面的每种信息都是以集合的形式存在,我就维护了一个大的集合,每个集合是表格中的一列,最后出结果的时候直接用pandas来输出excel

list_goods=[]#商品名
list_goods_link=[]#商品链接
list_price=[]#价格
list_number=[]#付款人数
list_shop=[]#商品名
list_shop_link=[]#商家链接
data = {"商品名":list_goods,"商品链接":list_goods_link,"价格":list_price,"付款人数":list_number,"商家名":list_shop,"商家链接":list_shop_link}
df = pd.DataFrame(data)
df.to_excel('new.xlsx')

好啦,结束啦,睡觉

获取淘宝价格区间l-r的商品a的详细信息(商品名等)相关推荐

  1. 电商API分享:获取淘宝商品历史价格api调用示例 参数说明

    在网络购物中,TAO宝是相信许多人的首选平台之一,而对于一个谨慎的购物者来说,价格的变化是非常重要的.所以获取淘宝商品历史价格,可以帮助购物者更好地作出决策,实现理性消费.获取淘宝商品历史价格主要能帮 ...

  2. python开发跟淘宝有联系没_python每日获取淘宝首页关键字推荐词

    每日美图 介绍 因为自己想着手搞一波淘宝,准备用于获取淘宝首页关键字推荐词,想化妆品.服装这种我们是不适合做的竞争太大了. 我们暂时定为水杯这种小类目的,对于新开的店面除了刷单,最重要的还是自然流量. ...

  3. Python网络爬虫获取淘宝商品价格

    1.Python网络爬虫获取淘宝商品价格代码: #-*-coding:utf-8-*- ''' Created on 2017年3月17日 @author: lavi ''' import reque ...

  4. API电商平台获取淘宝商品详情

    API淘宝详情获取 请求接口都需要携带token 获取token 一.购物车的存储形式 1.cookie存放数据 无须登录.无须查库.保存在浏览器端优点:性能好.访问快.没有和数据库交互.缺点1:换浏 ...

  5. 获取淘宝购买到的商品订单物流API,买家订单物流API接口,淘宝买家订单API接口

    一.获取淘宝购买到的商品订单物流API,买家订单物流API接口,淘宝买家订单API接口代码对接如下: 1.公共参数: 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接 ...

  6. 使用selenium模拟浏览器,获取淘宝搜索页面商品名称销量等信息

    作者:李忠林 Github: https://github.com/Leezhonglin Gitblog: https://leezhonglin.github.io/ 本文仅用于学习. 使用自动化 ...

  7. 获取淘宝店铺所有商品API分享 店铺所有商品接口 店铺ID取商品 商品销量排序接口

    获取淘宝店铺所有商品API,是一种可以帮助开发者快速获取淘宝店铺全部商品信息的方式.同时,还支持翻页显示.按价格销量排序等.本文将介绍如何API接口获取特定店铺的所有商品,以及需要注意的事项. 一.申 ...

  8. 怎么批量获取淘宝的商品数据?

    越来越多的人开始倚赖电商平台作为购物便利来源,淘宝商城作为最具关注度和活跃度的一家,其商品数量已经达到将近垂涎三尺的规模,让消费者拥有了更大的挑选空间,更多的选择方式,更优惠的价格.因此,研究淘宝商品 ...

  9. Python:通过远程监控用户输入来获取淘宝账号和密码的实验(二)

    从今天早上产生了写个获取淘宝账号及密码的想法后,到现在,全天都在看书.调试程序,12小时内写了三篇相关博客,如下: <Python:通过获取淘宝账号和密码的实验,来看登陆方式选择的重要性> ...

最新文章

  1. 大雁蛋人工孵化的方法_大鹅繁殖有哪些方法,您了解吗?
  2. dockerfile指定jvm参数
  3. android 设置按钮高度,如何在本机android中设置按钮的高度
  4. 实验管理系统java,大学生创新实验室信息管理系统 java+mysql
  5. JavaScript prototype 属性
  6. H5实例 移动端页面练习
  7. 多分类的梯度以及logsumexp
  8. python自动化测试-Python自动化测试如何自动生成测试用例?
  9. Glad You Came--带条件的线段树区间更新,区间查询(其实是单点查询)
  10. 《转》15种CSS混合模式让图片产生令人惊艳的效果
  11. java版AES加密算法实现
  12. 信息安全体系建设(一)
  13. VMware Horizon View许可证如何工作?
  14. 细粒度锁的实现之分级锁的设计实现
  15. 全连接网络实现Fashion数据集学习/预测
  16. ibm是被联想收购了吗_联想收购IBM之后为什么出现品牌危机
  17. SIM 卡的IMSI号含义
  18. linux 批量替换文件cp,Linux下批量修改文件名
  19. Unhandled Exception:System.DllNotFoundException: Unable to load DLLquot;**quot;:找不到指定的模块
  20. C1认证学习笔记2--计算机通识

热门文章

  1. python数据分析与可视化【一】python基础实例
  2. 互联网金融风控大数据技术应用
  3. [PHP] PHP7.4.2安全和修复版本的更改日志
  4. EXCEL公式-文本型数据转换为数值型数据
  5. Solr面试回答思路
  6. codeforce比赛规则介绍(转)
  7. 阿里云后台运行python程序(后台运行scrapy爬虫)的方法
  8. ccna 服务器输入域名显示不出,思科为服务器设置域名
  9. 产品基础学习笔记---传智教育
  10. 巴菲特斥资290亿抄底,台积电跌成“白菜价”?