selenium登录 爬取淘宝商品信息
淘宝网: 淘宝网是亚太地区较大的网络零售、商圈,由阿里巴巴集团在2003年5月创立。淘宝网 是中国深受欢迎的网购零售平台,拥有近5亿的注册用户数,每天有超过6000万的固定访客,同时每天的在线商品数已经超过了8亿件,平均每分钟售出4.8万件商品。随着淘宝网规模的扩大和用户数量的增加,淘宝也从单一的C2C网络集市变成了包括C2C、团购、分销、拍卖等多种电子商务模式在内的综合性零售商圈。目前已经成为世界范围的电子商务交易平台之一。
淘宝官网: https://taobao.com/
注册/登录淘宝: https://login.taobao.com/member/login.jhtml
操作环境: python3.6+jupyter notebook,win10,goole
技术难点:
- 模拟登录
- 跳过滑块验证
实现步骤讲解
1、模拟登录
1.1、为什么要模拟登录?
淘宝商城的商品信息可以说要比京东商城多一些保护,京东商城可以直接搜索商品进行下拉加载数据进行爬取信息,但是淘宝不让直接搜索商品,必须要登录后才能查看商品。
1.2、模拟登录方式
- 可以直接使用淘宝的账号登录
直接使用淘宝账号登录,平时普通的登录可以直接登录,但是使用selenium模拟登录时需要进行进行滑块验证 - 支付宝登录
- 第三方登录(微博)
需要进行验证码验证才能登录 - APP扫码登录
也需要使用滑块验证,但是可以使用IP模拟用户访问跳过滑块
1.3、模拟扫码登录
#跳过滑动验证chrome_option = webdriver.ChromeOptions()chrome_option.add_argument('--proxy--server=127.0.0.1:8080')#使用IP地址
2、选取爬取页数
2.1、为什么要选取爬取的页数,而不是全部爬取?
- 淘宝使用模糊可重复搜索,随便提供一个词都可以查找的几十页的商品信息,后面的很多商品都会和前面的商品重复,全部爬取的数据价值不大。
- 全部爬取技术更容易实现,学习的技术价值也不大。
- 使用选取片段获取数据更方便
2.1、定点具体页数
搜索商品后,下拉网页到底部,我们可以看到进行切换页面的按钮
我们在这个框内输入要跳转到的页数,点击“确定”就可以跳转了。
实现逻辑: 找到搜索框—>清空—>输入数字—>确定
search = driver.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/div[2]/input')#找到搜索框
time.sleep(2)
search.clear()#清空搜索框
time.sleep(1)
search.send_keys(num)#输入数字
driver.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/div[2]/span[3]').click()#点击确定按钮
2.2、定点片段页数
global starPage
global endPage
starPage = int(input("请输入起始页数字:"))
endPage = int(input("请输入终止页数字:"))
def start():global starPageglobal endPagefor num in range(starPage,endPage+1):print ("正在准备爬取第%s页"%num)spider()if num < endPage:nextPage()
def nextPage():print("点击下一页")
def spider():print("开始获取信息")
if __name__ == '__main__': start()
逻辑结果:
3、源码汇总
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from lxml import etree
import timethings = input("请输入您要查询的商品:")
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.get('https://login.taobao.com/member/login.jhtml')
# 等待扫码登录
time.sleep(10)
def scan_login():#跳过滑动验证chrome_option = webdriver.ChromeOptions()chrome_option.add_argument('--proxy--server=127.0.0.1:8080')#使用代理IP,告诉服务器这是人为操作search = driver.find_element_by_xpath('//*[@id="q"]') #在kw内输入search.send_keys(things)#获取输入的商品time.sleep(2)search.send_keys(Keys.ENTER)#按回车 time.sleep(4)#大约加载4秒maxPage = driver.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/div[1]').text #查找到商品的最大页数print ("您所查询的商品",maxPage)
def start(starPage,endPage):#选择商品页数片段for num in range(starPage,endPage+1): print ("正在准备爬取第%s页"%num)js="document.documentElement.scrollTop=4950"#下拉加载driver.execute_script(js)driver.implicitly_wait(5)search = driver.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/div[2]/input')#获取输入页数框time.sleep(4)search.clear()#清空内容time.sleep(1)search.send_keys(num)time.sleep(3)spider()if num < endPage:#当输入页数小于终止页时可以跳转到下一页nextPage()
def nextPage():driver.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/div[2]/span[3]').click()#点击确定,跳转页数
def spider():time.sleep(5)source = driver.page_source#获取网页源码html = etree.HTML(source)#解析源网页for et in html.xpath('//*[@id="mainsrp-itemlist"]/div/div/div[1]/div'):names = et.xpath('./div[2]/div[2]/a/text()')name = (str(names)).replace(" ","").replace("'","").replace(",","").replace("[\\n\\n\\n\\n","").replace("\\n]","").replace("[\\n\\n","")#// 双斜杠可以表明转译符price = et.xpath('./div[2]/div/div/strong/text()')buy = et.xpath('./div[2]/div[1]/div[2]/text()')store = et.xpath('./div[2]/div[3]/div[1]/a/span[2]/text()')location = et.xpath('//*[@id="mainsrp-itemlist"]/div/div/div[1]/div[5]/div[2]/div[3]/div[2]/text()')print (name,price,buy,store,location,'\n')if __name__ == '__main__':scan_login()starPage = int(input("请输入起始页数字:"))endPage = int(input("请输入终止页数字:"))start(starPage,endPage)
爬取部分结果:
selenium登录 爬取淘宝商品信息相关推荐
- 利用Selenium爬取淘宝商品信息
文章来源:公众号-智能化IT系统. 一. Selenium和PhantomJS介绍 Selenium是一个用于Web应用程序测试的工具,Selenium直接运行在浏览器中,就像真正的用户在操作一样. ...
- python爬虫——用selenium爬取淘宝商品信息
python爬虫--用selenium爬取淘宝商品信息 1.附上效果图 2.淘宝网址https://www.taobao.com/ 3.先写好头部 browser = webdriver.Chrome ...
- 爬取淘宝商品信息selenium+pyquery+mongodb
''' 爬取淘宝商品信息,通过selenium获得渲染后的源码,pyquery解析,mongodb存储 '''from selenium import webdriver from selenium. ...
- python+scrapy简单爬取淘宝商品信息
python结合scrapy爬取淘宝商品信息 一.功能说明: 已实现功能: 通过scrapy接入selenium获取淘宝关键字搜索内容下的商品信息. 待扩展功能: 爬取商品中的全部其他商品信息. 二. ...
- 使用python爬取淘宝商品信息
使用python爬虫爬取淘宝商品信息 使用的模块主要有 selenium ,time , re, from selenium import webdriver import time import c ...
- 2021-11-16爬取淘宝商品信息时如何获取cookie
爬取淘宝商品信息时如何获取cookie ###一.基本环境 1.win10系统 2.火狐浏览器 3.编程软件anaconda 4.淘宝的robots:https://www.taobao.com/ro ...
- Python爬取淘宝商品信息保存到Excel
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
- 爬虫学习笔记——Selenium爬取淘宝商品信息并保存
在使用selenium来模拟浏览器操作,抓取淘宝商品信息前,先完成一些准备工作. 准备工作:需要安装selenium,pyquery,以及Chrome浏览器并配置ChromeDriver. 安装sel ...
- Python爬虫:Selenium模拟Chrome浏览器爬取淘宝商品信息
对于采用异步加载技术的网页,有时候想通过逆向工程的方式来设计爬虫进行爬取会比较困难,因此,要想通过python获取异步加载数据往往可以使用Selenium模拟浏览器的方式来获取. Selenium是一 ...
最新文章
- [导入]OpenSceneGraph编译指导
- windows网络编程第二版 第三章 Internet Protocol 读书笔记
- “不正经”NIPS大会指北:嘻哈歌手、感人长队,以及最佳论文
- 2019 牛客多校第一场 F Random Point in Triangle
- oracle dbstart,dbstart: 未找到命令
- PS教程第五课:套索工具进行抠图
- 阿里程序员转行公务员,工资少了40万,只留一句话惊醒众人
- java 多线程同步 通过实现Runnable的示例
- Linux(一)-- Linux环境搭建
- Outlook替代Hotmail:社交很重要,但邮箱是根本
- 提高存储器速度的技术
- el-table对于超出长度限制的文本的处理(vue-cli)
- Python读取docx表格中的合并单元格信息
- git send-email 时unknown AUTH解决方法
- zblog访问记录v2.5.0
- 计算机无法加载远程访问连接管理器服务,win7宽带连接提示无法加载远程访问连接管理器服务错误711怎么办...
- 能够翻译文档的免费软件-免费翻译整个文档的软件
- android系统在中国的发展趋势,最新中国智能手机市场操作系统格局:安卓占比超八成...
- MySQL忘记密码恢复密码的实现方法
- 如何让自己的收入翻了十倍