资讯专栏INFORMATION COLUMN

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

banana_pi / 3579人阅读

摘要:简介上一个博文已经讲述了如何使用跳过检测并爬取天猫商品数据,所以在此不再详细讲,有需要思路的可以查看另外一篇博文。

简介

上一个博文已经讲述了如何使用selenium跳过webdriver检测并爬取天猫商品数据,所以在此不再详细讲,有需要思路的可以查看另外一篇博文。

源代码

</>复制代码

  1. # -*- coding: utf-8 -*-
  2. from selenium import webdriver
  3. from selenium.webdriver.common.by import By
  4. from selenium.webdriver.support.ui import WebDriverWait
  5. from selenium.webdriver.support import expected_conditions as EC
  6. from pyquery import PyQuery as pq
  7. from time import sleep
  8. import random
  9. #定义一个taobao类
  10. class taobao_infos:
  11. #对象初始化
  12. def __init__(self):
  13. url = "https://login.taobao.com/member/login.jhtml"
  14. self.url = url
  15. options = webdriver.ChromeOptions()
  16. options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2}) # 不加载图片,加快访问速度
  17. options.add_experimental_option("excludeSwitches", ["enable-automation"]) # 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium
  18. self.browser = webdriver.Chrome(executable_path=chromedriver_path, options=options)
  19. self.wait = WebDriverWait(self.browser, 10) #超时时长为10s
  20. #登录淘宝
  21. def login(self):
  22. # 打开网页
  23. self.browser.get(self.url)
  24. # 自适应等待,点击密码登录选项
  25. self.browser.implicitly_wait(30) #智能等待,直到网页加载完毕,最长等待时间为30s
  26. self.browser.find_element_by_xpath("//*[@class="forget-pwd J_Quick2Static"]").click()
  27. # 自适应等待,点击微博登录宣传
  28. self.browser.implicitly_wait(30)
  29. self.browser.find_element_by_xpath("//*[@class="weibo-login"]").click()
  30. # 自适应等待,输入微博账号
  31. self.browser.implicitly_wait(30)
  32. self.browser.find_element_by_name("username").send_keys(weibo_username)
  33. # 自适应等待,输入微博密码
  34. self.browser.implicitly_wait(30)
  35. self.browser.find_element_by_name("password").send_keys(weibo_password)
  36. # 自适应等待,点击确认登录按钮
  37. self.browser.implicitly_wait(30)
  38. self.browser.find_element_by_xpath("//*[@class="btn_tip"]/a/span").click()
  39. # 直到获取到淘宝会员昵称才能确定是登录成功
  40. taobao_name = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".site-nav-bd > ul.site-nav-bd-l > li#J_SiteNavLogin > div.site-nav-menu-hd > div.site-nav-user > a.site-nav-login-info-nick ")))
  41. # 输出淘宝昵称
  42. print(taobao_name.text)
  43. # 模拟向下滑动浏览
  44. def swipe_down(self,second):
  45. for i in range(int(second/0.1)):
  46. #根据i的值,模拟上下滑动
  47. if(i%2==0):
  48. js = "var q=document.documentElement.scrollTop=" + str(300+400*i)
  49. else:
  50. js = "var q=document.documentElement.scrollTop=" + str(200 * i)
  51. self.browser.execute_script(js)
  52. sleep(0.1)
  53. js = "var q=document.documentElement.scrollTop=100000"
  54. self.browser.execute_script(js)
  55. sleep(0.1)
  56. # 爬取淘宝 我已买到的宝贝商品数据
  57. def crawl_good_buy_data(self):
  58. # 对我已买到的宝贝商品数据进行爬虫
  59. self.browser.get("https://buyertrade.taobao.com/trade/itemlist/list_bought_items.htm")
  60. # 遍历所有页数
  61. for page in range(1,1000):
  62. # 等待该页面全部已买到的宝贝商品数据加载完毕
  63. good_total = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#tp-bought-root > div.js-order-container")))
  64. # 获取本页面源代码
  65. html = self.browser.page_source
  66. # pq模块解析网页源代码
  67. doc = pq(html)
  68. # # 存储该页已经买到的宝贝数据
  69. good_items = doc("#tp-bought-root .js-order-container").items()
  70. # 遍历该页的所有宝贝
  71. for item in good_items:
  72. good_time_and_id = item.find(".bought-wrapper-mod__head-info-cell___29cDO").text().replace("
  73. ","").replace("
  74. ","")
  75. good_merchant = item.find(".seller-mod__container___1w0Cx").text().replace("
  76. ","").replace("
  77. ","")
  78. good_name = item.find(".sol-mod__no-br___1PwLO").text().replace("
  79. ", "").replace("
  80. ", "")
  81. # 只列出商品购买时间、订单号、商家名称、商品名称
  82. # 其余的请自己实践获取
  83. print(good_time_and_id, good_merchant, good_name)
  84. print("
  85. ")
  86. # 大部分人被检测为机器人就是因为进一步模拟人工操作
  87. # 模拟人工向下浏览商品,即进行模拟下滑操作,防止被识别出是机器人
  88. # 随机滑动延时时间
  89. swipe_time = random.randint(1, 3)
  90. self.swipe_down(swipe_time)
  91. # 等待下一页按钮 出现
  92. good_total = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".pagination-next")))
  93. # 点击下一页按钮
  94. good_total.click()
  95. sleep(2)
  96. if __name__ == "__main__":
  97. # 使用之前请先查看当前目录下的使用说明文件README.MD
  98. # 使用之前请先查看当前目录下的使用说明文件README.MD
  99. # 使用之前请先查看当前目录下的使用说明文件README.MD
  100. chromedriver_path = "/Users/bird/Desktop/chromedriver.exe" #改成你的chromedriver的完整路径地址
  101. weibo_username = "改成你的微博账号" #改成你的微博账号
  102. weibo_password = "改成你的微博密码" #改成你的微博密码
  103. a = taobao_infos()
  104. a.login() #登录
  105. a.crawl_good_buy_data() #爬取淘宝 我已买到的宝贝商品数据
使用教程

点击这里下载下载chrome浏览器

查看chrome浏览器的版本号,点击这里下载对应版本号的chromedriver驱动

pip安装下列包

[x] pip install selenium

点击这里登录微博,并通过微博绑定淘宝账号密码

在main中填写chromedriver的绝对路径

在main中填写微博账号密码

</>复制代码

  1. #改成你的chromedriver的完整路径地址
  2. chromedriver_path = "/Users/bird/Desktop/chromedriver.exe"
  3. #改成你的微博账号
  4. weibo_username = "改成你的微博账号"
  5. #改成你的微博密码
  6. weibo_password = "改成你的微博密码"
演示图片



爬虫过程图片查看不了点击这里
爬虫结果图片查看不了点击这里

其他爬虫源代码

所有关于爬虫的项目都放在github了,有需要的可以去GitHub仓库

项目持续更新,欢迎您star本项目

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

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

相关文章

  • selenium跳过webdriver检测爬取天猫商品数据

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

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

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

    tulayang 评论0 收藏0
  • selenium实战:窗口化爬取*宝数据(附源码链接)

    摘要:完整代码火狐浏览器驱动下载链接提取码双十一刚过,想着某宝的信息看起来有些少很难做出购买决定。完整代码&火狐浏览器驱动下载链接:https://pan.baidu.com/s/1pc8HnHNY8BvZLvNOdHwHBw 提取码:4c08双十一刚过,想着某宝的信息看起来有些少很难做出购买决定。于是就有了下面的设计:​既然有了想法那就赶紧说干就干趁着双十二还没到一、准备工作:安装 :selen...

    番茄西红柿 评论0 收藏2637
  • 爬取淘宝上4000条月饼数据,制作了一个酷炫可视化大屏!

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

    cod7ce 评论0 收藏0
  • Web开发 - Selenium自动化&爬虫

    摘要:自动化爬取淘宝中的订单这是淘宝会员登录页。但淘宝的反爬机制很难算出,很多都是通过的计算,所以不得不学习源码,反到最后看的头痛。。。 自动化爬取淘宝中的订单 这是 淘宝会员登录页 。因为之前做的爬虫都是通过框架或从登录页取得Cookie,再注入进去实现登陆过程的。但淘宝的反爬机制很难算出Cookie,很多Cookie都是通过JS的计算,所以不得不学习源码,反到最后看的头痛。。。 第一次尝...

    Chao 评论0 收藏0

发表评论

0条评论

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