环境准备

博主python为3.8,应该3.x的都没问题下载selenium:

pip install selenium

也可以使用清华镜像下载

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple selenium

下载浏览器的驱动包,博主使用的是Chrome,下载前,请查看自己的浏览器版本:驱动镜像–链接,查看版本号,在地址栏输入Chrome://version

在链接中下载自己对应的驱动,如果没有自己的版本号,就试试相近的版本号,将exe文件移动到你的python目录下(其实是因为要配置环境变量,python配置过路径了,移动到它下面就不用在配置啦,你要是python路径也没有配置,就自己手动配置环境变量哦):

此时,试试运行python代码:

from selenium import webdriverdriver = webdriver.Chrome()  # 创建driver对象driver.get('https://www.taobao.com')  # 请求淘宝

弹出淘宝窗口,没有报错,说明可以开始愉快的爬虫啦!

爬虫的准备:

from selenium import webdriver
# 用于延迟等待
import time
# 正则
import re
import requests
import csv

我将各种解释,注释到代码中了,我就不过多解释了,看代码吧。

if __name__ == "__main__":driver = webdriver.Chrome()  # 创建driver对象#最大化窗口(我试过最大化方便扫码,但是好像会被淘宝识别出机器人,所以我后面换了种方法)# driver.maximize_window()  # 所有的数据将保存到datas中datas = []# 查找的关键词集合searchs = {'java语言','python','c++','安卓开发','JavaScript','html5','vue','人工智能与机器学习','数据结构','node.js','linux','计算机组成原理','汇编原理','swift语言','go语言'}# 扫码登录函数login()# 查找所有商品信息to_searchs(searchs)# 保存数据和图片save_data(datas)

各函数

1.login()

扫码登录

def login():# 请求淘宝driver.get('https://www.taobao.com')  # 输入查询内容driver.find_element_by_xpath('//*[@id="q"]').send_keys('java')# 获取到搜索按钮后,点击driver.find_element_by_xpath('//*[@id="J_TSearchForm"]/div[1]/button').click()# 改变窗口宽度,不要最大化,会被反爬虫检测到driver.set_window_size(1300, 800)# 点击二维码扫描driver.find_element_by_xpath('//*[@id="login"]/div[1]/i').click()# 等待扫描二维码,时间短了就改一改time.sleep(10)

2.drop_scroll()

拉动侧边滑动条,使页面数据加载完全

def drop_scroll():for x in range(1, 11, 2):# 停一下,慢慢拉,拉快了会出问题哦time.sleep(0.5)# 代表滑动条位置j = x/10js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j# 运行上面的js代码driver.execute_script(js)

3.get_gooods()

获取商品信息

def get_gooods(serach):# 获取分页面总数,由于自己的需求,没有翻页,翻页需要的最大值# 这里提醒大家,如果自己要翻页,请不要点击下一页按钮,也会被检测出来,(可观察后,改变地址栏)# token = driver.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/div[1]').text# print(token)# 序号xh = 0# 分析淘宝页面后,获取商品div里面的数据divs = driver.find_elements_by_xpath('//div[@class="items"]/div[@class="item J_MouserOnverReq  "]')# 遍历每个divs,获取商品详细信息for div in divs:# print(search)xh += 1# 获取图片地址img = div.find_element_by_xpath('.//div[@class="pic"]/a/img').get_attribute('data-src')# 拼接全地址,用于下载src_path = "https:"+img# 请求图片地址,并进行下载,重命名,格式为:分类_序号,没有img文件夹请自己新建open("./img/{}_{}.jpg".format(serach,xh), mode="wb").write(requests.get(src_path).content)# 获取标题title = div.find_element_by_css_selector('div.row.row-2.title').text# 获取价格price = div.find_element_by_xpath('.//div[@class="price g_price g_price-highlight"]/strong').text+'元'# 付款人数(销售数)fukuan = div.find_element_by_xpath('.//div[@class="deal-cnt"]').text# 一条数据product = {'分类': serach, '序号': xh, '标题': title,'imgurl': img, '价格': price, '销售数': fukuan}print(product)# 向数组添加一条数据datas.append(product)

4.to_searchs()

根据自己的关键词开始遍历每个关键词

def to_searchs(serachs):for serach in serachs:print(serach)# 获取文本框serachInput = driver.find_element_by_xpath('//*[@id="q"]')# 清空文本框serachInput.clear()# 输入查询内容serachInput.send_keys(serach)# 点击搜索按钮driver.find_element_by_xpath('//*[@id="J_SearchForm"]/button').click()# 拉动侧边滑动条,使页面数据加载完全drop_scroll()# 获取商品信息get_gooods(serach)

5.save_data()

保存数据

def save_data(datas):# csv文件表头header = ['分类', '序号', '标题', 'imgurl', '价格', '销售数']with open('test1.csv', 'a', newline='') as f:# 提前预览列名,当下面代码写入数据时,会将其一一对应。writer = csv.DictWriter(f, fieldnames=header)# 写入列名(表头)writer.writeheader() # 写入数据writer.writerows(datas)

完整代码和数据

请自行克隆代码哦,也有博主爬下来的一些数据,不需要数据,就copy那个py文件吧

加下源码群获取:1136192749

使用selenium爬取淘宝商品数据,搜索关键词分类(反爬很难?)相关推荐

  1. 爬虫--selenium爬取淘宝商品数据

    # 导入包 from selenium import webdriver # 连接驱动器,这里用的是谷歌,版本必须对应 driver = webdriver.Chrome(executable_pat ...

  2. python爬虫数据分析项目 双十一_Python爬取淘宝商品数据,价值千元的爬虫外包项目!...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 完整代码可以点击下方链 ...

  3. Python爬取淘宝商品数据,价值千元的爬虫外包项目

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 完整代码可以点击下方链 ...

  4. Python爬虫淘宝基于selenium抓取淘宝商品数据2021年测试过滑动验证

    配置一下"可能需要修改的参数",就可以食用底部代码了,ps:可能已失效 本文章代码功能 准备工作 Python用到的库和准备工作 可能需要修改的参数 在CMD中打开一个Chrome ...

  5. 淘宝商品爬虫Ⅰ:根据店铺名爬取淘宝商品基本信息

    根据店铺名爬取淘宝商品基本信息 算是前言 网页分析 爬取流程 代码和运行结果 Cookies去哪找? 火狐浏览器解决方案 后记 算是前言 之前接了几个私活,很多买方都是想要淘宝某个店铺的商品的数据. ...

  6. selenium爬取淘宝商品基础数据以及商品详情(茶叶数据)

    selenium爬取淘宝商品基础数据以及商品详情 目录 网页分析 确定要爬取的数据 分析网页构成 爬取流程 登入 爬取基础数据以及商品详情 爬取基础数据 爬取商品详情 淘宝滑动验证码 保存EXCEL中 ...

  7. [Python3网络爬虫开发实战] 7-动态渲染页面爬取-4-使用Selenium爬取淘宝商品

    在前一章中,我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取.比如,淘宝,它的整个页面数据确实也是通过Ajax获取的,但是这些Ajax接口参数比较复杂,可 ...

  8. 利用Selenium爬取淘宝商品信息

    文章来源:公众号-智能化IT系统. 一.  Selenium和PhantomJS介绍 Selenium是一个用于Web应用程序测试的工具,Selenium直接运行在浏览器中,就像真正的用户在操作一样. ...

  9. Python + selenium 爬取淘宝商品列表及商品评论 2021-08-26

    Python + selenium 爬取淘宝商品列表及商品评论[2021-08-26] 主要内容 登录淘宝 获取商品列表 获取评论信息 存入数据库 需要提醒 主要内容 通过python3.8+ sel ...

最新文章

  1. Android中的JSON详细总结
  2. asp.net url重写相关技术问题整理
  3. android+高通平台缩写汇聚
  4. c实现多语言编程,C/C++编程中多国语言处理
  5. C++之stdafx.h的用法说明
  6. JVM之堆Heap参数调优入门
  7. 【最新合集】IDEA 快捷键整理
  8. python并行计算_Python并行计算简单实现
  9. Axure经典案例高保真下载(智慧水务、智慧泵房、水厂监控、营收管理、DMA漏损、维护管理、档案管理、仓库管理、水质监控、数据中心、调度指挥中心)
  10. 【论文研读】【金融】Predicting the direction of stock market prices using random forest
  11. thinkpad 使用技巧
  12. MySQL多IDC部署注意事项
  13. html5游戏生成apk,html5 如何打包成apk
  14. 8.郝斌C语言笔记——函数
  15. iconfont字体图标的使用
  16. python入门基础知识(九):函数
  17. (三十八)论文阅读 | 目标检测之CPN
  18. python爬虫方向_爬虫实战(三) 用Python爬取拉勾网
  19. SpringBoot优雅停机的正确姿势!
  20. 【Unity】U3D ARPG游戏制作实例(二)人物基本动作切换

热门文章

  1. v$lock之alter table drop column与alter table set unused column区别系列五
  2. 算法学习 (门徒计划)4-2 单调栈(Monotone-Stack)及经典问题 学习笔记
  3. 通过传参自定义打印星星的行数
  4. r语言plotmds_在R语言中使用MDS(多维标度法)
  5. USB自定义HID设备实现-LPC1768
  6. LED显示屏控制系统软件的开发
  7. elasticjob mysql_elastic-job 新手指南
  8. 河南工学院计算机应用基础答案,历年自考《计算机应用基础》精选习题六
  9. 诛仙服务器列表文件,诛仙2 服务器列表
  10. Android中定时器AlarmManager的用法