淘宝网: 淘宝网是亚太地区较大的网络零售、商圈,由阿里巴巴集团在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. 模拟登录
  2. 跳过滑块验证

实现步骤讲解

1、模拟登录

1.1、为什么要模拟登录?

淘宝商城的商品信息可以说要比京东商城多一些保护,京东商城可以直接搜索商品进行下拉加载数据进行爬取信息,但是淘宝不让直接搜索商品,必须要登录后才能查看商品。

1.2、模拟登录方式
  1. 可以直接使用淘宝的账号登录
    直接使用淘宝账号登录,平时普通的登录可以直接登录,但是使用selenium模拟登录时需要进行进行滑块验证
  2. 支付宝登录
  3. 第三方登录(微博)
    需要进行验证码验证才能登录
  4. 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登录 爬取淘宝商品信息相关推荐

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

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

  2. python爬虫——用selenium爬取淘宝商品信息

    python爬虫--用selenium爬取淘宝商品信息 1.附上效果图 2.淘宝网址https://www.taobao.com/ 3.先写好头部 browser = webdriver.Chrome ...

  3. 爬取淘宝商品信息selenium+pyquery+mongodb

    ''' 爬取淘宝商品信息,通过selenium获得渲染后的源码,pyquery解析,mongodb存储 '''from selenium import webdriver from selenium. ...

  4. python+scrapy简单爬取淘宝商品信息

    python结合scrapy爬取淘宝商品信息 一.功能说明: 已实现功能: 通过scrapy接入selenium获取淘宝关键字搜索内容下的商品信息. 待扩展功能: 爬取商品中的全部其他商品信息. 二. ...

  5. 使用python爬取淘宝商品信息

    使用python爬虫爬取淘宝商品信息 使用的模块主要有 selenium ,time , re, from selenium import webdriver import time import c ...

  6. 2021-11-16爬取淘宝商品信息时如何获取cookie

    爬取淘宝商品信息时如何获取cookie ###一.基本环境 1.win10系统 2.火狐浏览器 3.编程软件anaconda 4.淘宝的robots:https://www.taobao.com/ro ...

  7. Python爬取淘宝商品信息保存到Excel

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

  8. 爬虫学习笔记——Selenium爬取淘宝商品信息并保存

    在使用selenium来模拟浏览器操作,抓取淘宝商品信息前,先完成一些准备工作. 准备工作:需要安装selenium,pyquery,以及Chrome浏览器并配置ChromeDriver. 安装sel ...

  9. Python爬虫:Selenium模拟Chrome浏览器爬取淘宝商品信息

    对于采用异步加载技术的网页,有时候想通过逆向工程的方式来设计爬虫进行爬取会比较困难,因此,要想通过python获取异步加载数据往往可以使用Selenium模拟浏览器的方式来获取. Selenium是一 ...

最新文章

  1. [导入]OpenSceneGraph编译指导
  2. windows网络编程第二版 第三章 Internet Protocol 读书笔记
  3. “不正经”NIPS大会指北:嘻哈歌手、感人长队,以及最佳论文
  4. 2019 牛客多校第一场 F Random Point in Triangle
  5. oracle dbstart,dbstart: 未找到命令
  6. PS教程第五课:套索工具进行抠图
  7. 阿里程序员转行公务员,工资少了40万,只留一句话惊醒众人
  8. java 多线程同步 通过实现Runnable的示例
  9. Linux(一)-- Linux环境搭建
  10. Outlook替代Hotmail:社交很重要,但邮箱是根本
  11. 提高存储器速度的技术
  12. el-table对于超出长度限制的文本的处理(vue-cli)
  13. Python读取docx表格中的合并单元格信息
  14. git send-email 时unknown AUTH解决方法
  15. zblog访问记录v2.5.0
  16. 计算机无法加载远程访问连接管理器服务,win7宽带连接提示无法加载远程访问连接管理器服务错误711怎么办...
  17. 能够翻译文档的免费软件-免费翻译整个文档的软件
  18. android系统在中国的发展趋势,最新中国智能手机市场操作系统格局:安卓占比超八成...
  19. MySQL忘记密码恢复密码的实现方法
  20. 如何让自己的收入翻了十倍

热门文章

  1. eas数据库 oracle,EAS数据库还原通用操作
  2. Mac OS和Office版本问题
  3. 写一些生活的琐事(纯属发泄)
  4. 漫漫D3路----W3C+CSS+JS
  5. Android音频管理器AudioManager用法
  6. 长安链赋能北京140余个政务服务应用场景
  7. 6.18大促,看蚂蚁智能客服如何帮你快人一步
  8. 剪视频一点都不难,多款超实用剪辑软件全方位评测!
  9. STM32 ADC采样
  10. 音视频相关研究-英年早逝的雷宵骅在读博士的项目