selenium五十行代码自动化爬取淘宝
先看一下代码,真的只是五十行:
# coding=gbk from selenium import webdriver
import time options = webdriver.ChromeOptions()
options.add_argument(r'--user-data-dir=C:\Users\lwy\AppData\Local\Google\Chrome\User Data\Default')
options.add_experimental_option('excludeSwitches', ['enable-automation'])
driver = webdriver.Chrome(options=options)
driver.get('https://www.taobao.com/') headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36',
'Referer': 'https://www.taobao.com/'} def request_page():
driver.find_element_by_xpath('//*[@id="q"]').send_keys('男装')
time.sleep(3)
driver.find_element_by_xpath('//*[@id="J_TSearchForm"]/div[1]/button').click()
time.sleep(5)
# 控制页数
for i in range(5):
# 获取每页存放所有商品的div
all_thing_div = driver.find_element_by_xpath('//*[@id="mainsrp-itemlist"]/div/div/div[1]')
# 获取每个商品的div列表
thing_div_list = all_thing_div.find_elements_by_xpath('./div')
# 依次获取每个商品的信息
for thing_div in thing_div_list:
info_div_list = thing_div.find_element_by_css_selector('.ctx-box').find_elements_by_xpath(
'./div') # 获取每个商品下面信息的4个div
price = info_div_list[0].find_element_by_xpath('./div[1]/strong').text # 单价
customer = info_div_list[0].find_element_by_xpath('./div[@class="deal-cnt"]').text # 购买数量
thing_name = info_div_list[1].find_element_by_xpath('./a').text
thing_lianjie = info_div_list[1].find_element_by_xpath('./a').get_attribute('href')
store_name = info_div_list[2].find_element_by_xpath('./div[1]/a/span[2]').text
store_where = info_div_list[2].find_element_by_xpath('./div[2]').text
print("单价:", price, "购买数量:", customer, '商品名称:', thing_name, '店铺名称:', store_name, '店铺所在地', store_where,
'链接:', thing_lianjie)
print('第{0}页爬取完成'.format(i+1))
if i+1 == 5:
break
driver.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/ul/li[8]/a/span[1]').click()
time.sleep(10) if __name__ == '__main__':
request_page()
driver.close()
第七行用来加载chrome的配置文件,需要改成自己的路径,可以再chrome的地址栏里输入chrome://version查看,第八行用来绕过淘宝对selenium的检测,request_page是自定义的爬虫函数,主要是利用xpath语法,真的不要太方便,第一个for循环用来控制爬取的页数,第二个for循环用来爬取每一个商品。
(ps:还是正在努力的小菜鸡,希望大佬执教,,xixiiixi。。。。)
**********不积跬步无以至千里**********
selenium五十行代码自动化爬取淘宝的更多相关文章
- Selenium+Chrome/phantomJS模拟浏览器爬取淘宝商品信息
#使用selenium+Carome/phantomJS模拟浏览器爬取淘宝商品信息 # 思路: # 第一步:利用selenium驱动浏览器,搜索商品信息,得到商品列表 # 第二步:分析商品页数,驱动浏 ...
- 学习用java基于webMagic+selenium+phantomjs实现爬虫Demo爬取淘宝搜索页面
由于业务需要,老大要我研究一下爬虫. 团队的技术栈以java为主,并且我的主语言是Java,研究时间不到一周.基于以上原因固放弃python,选择java为语言来进行开发.等之后有时间再尝试pytho ...
- Python 爬取淘宝商品数据挖掘分析实战
Python 爬取淘宝商品数据挖掘分析实战 项目内容 本案例选择>> 商品类目:沙发: 数量:共100页 4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 爬取淘宝商品 ...
- 利用Selenium爬取淘宝商品信息
一. Selenium和PhantomJS介绍 Selenium是一个用于Web应用程序测试的工具,Selenium直接运行在浏览器中,就像真正的用户在操作一样.由于这个性质,Selenium也是一 ...
- python3编写网络爬虫16-使用selenium 爬取淘宝商品信息
一.使用selenium 模拟浏览器操作爬取淘宝商品信息 之前我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取.比如,淘宝,它的整个页面数据确实也是通过A ...
- selenium跳过webdriver检测并爬取淘宝我已购买的宝贝数据
简介 上一个博文已经讲述了如何使用selenium跳过webdriver检测并爬取天猫商品数据,所以在此不再详细讲,有需要思路的可以查看另外一篇博文. 源代码 # -*- coding: utf-8 ...
- 使用Python爬取淘宝两千款套套
各位同学们,好久没写原创技术文章了,最近有些忙,所以进度很慢,给大家道个歉. 警告:本教程仅用作学习交流,请勿用作商业盈利,违者后果自负!如本文有侵犯任何组织集团公司的隐私或利益,请告知联系猪哥删除! ...
- 甜咸粽子党大战,Python爬取淘宝上的粽子数据并进行分析
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 爬虫 爬取淘宝数据,本次采用的方法是:Selenium控制Chrome浏览 ...
- 利用Python爬虫爬取淘宝商品做数据挖掘分析实战篇,超详细教程
项目内容 本案例选择>> 商品类目:沙发: 数量:共100页 4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 项目目的 1. 对商品标题进行文本分析 词云可视化 2. ...
随机推荐
- 前端常用的css代码
1.垂直居中对齐 .vc{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); } .vc{ position: ...
- WINDOWS代理服务器搭建 - Apache httpd
1.检查电脑系统类型 检查电脑版本是为 32位操作系统 还是 64位操作系统 2.下载安装Apache Httpd 下载地址:https://www.apachehaus.com/cgi-bin/do ...
- cf之 前缀和差分
给定一个n×n的WB矩阵,给定一个k∗k的能把B变成W的橡皮擦,求橡皮擦作用一次后,全为W的行.列总数最大值 连接:http://codeforces.com/contest/1200/problem ...
- 微信小程序开发——websocket测试
服务端 在windows下执行 node server.js 也可参照我的前一篇部署https var httpServ = require('http') var WebSocketServer ...
- <Math> 29 365
29. Divide Two Integers class Solution { public int divide(int dividend, int divisor) { if(dividend ...
- linux编程fcntl获取和设置文件锁
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types. ...
- 瓜子IM智能客服系统的数据架构设计(整理自现场演讲)
本文由ITPub根据封宇在[第十届中国系统架构师大会(SACC2018)]现场演讲内容整理而成. 1.引言 瓜子业务重线下,用户网上看车.预约到店.成交等许多环节都发生在线下.瓜子IM智能客服系统的目 ...
- 《细说PHP》第四版 样章 第23章 自定义PHP接口规范 1
如今的项目开发中,接口是很普遍的应用技术.现在好多项目组都单独设有接口开发人员.像腾讯.微博.淘宝等开放平台,其所谓的开放,就是提供一些可调用的接口,用于获取相关的信息.例如,微信用户基本信息.淘宝店 ...
- Linux网络基础协议和ip管理
1.简述osi七层模型和TCP/IP五层模型 osi七层模型分别是:物理层.数据链路层.网络层.传输层.会话层.表示层.应用层. 1)物理层:这一层的主要功能是二进制传输数据,界定连接器和网线的规格: ...
- shell 命令 tar -zxvf 解压 tar -zcvf 压缩
tar -zxvf 解压 tar -zcvf 压缩