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

Selenium是一个用于Web应用程序测试的工具,它可以在浏览器中运行,模拟用户真实的浏览网页操作,也就是说可以实现浏览器加载页面,搜索关键字和点击翻页等等操作,因此,就算使用了异步加载技术的网页,也可以模拟翻页得到不同的网页,也就可以得到你想要的数据了。

Selenium模块在第三方库里面可以找到,使用pycharm软件,打开左上角PyCharm->项目->python解释器->preferences里面添加,结果如下图进行搜索安装即可。

由于Selenium自己不带有浏览器,因此需要配合我们自己电脑安装的浏览器来使用,这里我们是通过常用的Chrome浏览器来模拟实现爬取数据。具体可以模拟的操作主要有如下一些操作:输入框内容填写、点击按钮、截屏、下滑等,因此对于登录网站的时候,我们可以不再需要构造表单或者提交cookie来登录网站了,只需要通过python代码模拟输入《账号》和《密码》实现登录。

模拟的

  1. 以下是模拟搜索和登录最常用代码

(2)登录后获取数据的常用代码

备注:此处xpath和单独的xpath方法差异就是此处是在最后加.text,单独xpath是在路径里面加/text()

以上是selenium基本要点,现在让我们开始进行实践操刀,如何来对淘宝商品信息进行抓取。

工具和语言:Selenium+Chrome+PyCharm+Python

抓取平台:www.taobao.com

抓取思路:以抓取我最近想入手的投影仪商品为例

  1. 打开淘宝网,输入投影仪,得到商品信息页面
  2. 打开网页源代码,查看输入投影仪后的搜索框位置如下图,确定位置,为后续输入关键字做准备

  1. 有时在你点击搜索后,淘宝强制需要登录网页,就需要再次查看输入账号和密码的位置,然后同理操作进入网页,在此不再赘述,直接上代码如下

  1. 接下来要模拟翻页操作,同理也是找到翻页位置:下一页,如下图

  1. 此时页面上有的信息都可以尝试查看,举例如付款人数、价钱等都可以尝试测试看看。

  1. 最后数据存储数据库就可以了,详细入库代码见详细代码部分

详细代码如下:

from selenium import webdriver
from lxml import etree
import time
import pymysqldb = pymysql.connect(host='localhost', user='root', passwd='密码', db='库名称', port=3306, charset='utf8')
print("数据库连接")
cursor = db.cursor()
cursor.execute("DROP TABLE IF EXISTS Learn_data.taobao_touyingyi_data")
sql = """CREATE TABLE IF not EXISTS Learn_data.taobao_touyingyi_data (id int auto_increment primary key,price CHAR(100),sell CHAR(100),detail CHAR(100)
)
DEFAULT CHARSET=utf8"""
cursor.execute(sql)driver=webdriver.Chrome()
driver.maximize_window()
def get_info(url,page):page=page+1driver.get(url)driver.implicitly_wait(10)selector=etree.HTML(driver.page_source)infos=selector.xpath('//div[@class="items"]/div[@class="item J_MouserOnverReq  "]')for info in infos:price = info.xpath('div[2]/div/div/strong/text()')[0]sell = info.xpath('div[2]/div/div[2]/text()')[0]detail = info.xpath('div[2]/div/div[2]/text()')[1]print(price,sell,detail)cursor.execute("insert into taobao_touyingyi_data (price,sell,detail)values(%s,%s,%s)",(str(price),str(sell),str(detail)))if page<=50:NextPage(url,page)else:pass
def NextPage(url,page):print(url)driver.get(url)driver.implicitly_wait(10)driver.find_element_by_xpath('//a[@trace="srp_bottom_pagedown"]').click()time.sleep(4)driver.get(driver.current_url)driver.implicitly_wait(10)get_info(driver.current_url, page)if __name__=='__main__':page=1url='https://www.taobao.com/'driver.get(url)driver.implicitly_wait(10)driver.find_element_by_id('q').clear()driver.find_element_by_id('q').send_keys('商品名称')driver.find_element_by_class_name('btn-search').click()driver.find_element_by_id("fm-login-id").send_keys("账号")# 找到按钮的位置time.sleep(1)# 找到密码的位置driver.find_element_by_id("fm-login-password").send_keys("密码")# 确保账号和密码输入完成time.sleep(3)# 识别验证码# 找到图片地址ret = driver.find_element_by_class_name("fm-button")# 点击按钮ret.click()time.sleep(3)print(driver.current_url)get_info(driver.current_url,page)db.commit()

运行数据库结果如下:

以上就是Selenium模拟Chrome浏览器爬取淘宝商品投影仪信息数据的所有过程,后续会进一步进行数据分析,有兴趣的同学可以扫描下方二维码加关注,更多机器学习和Python分析实践案例等着你!

Python爬虫:Selenium模拟Chrome浏览器爬取淘宝商品信息相关推荐

  1. python获取登录按钮_Python:Selenium模拟Chrome浏览器抓取淘宝商品信息

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

  2. python爬虫:Selenium模拟浏览器爬取淘宝商品信息

    1.数据提取前期网页分析 分析:淘宝网页数据也是通过Ajax技术获取的,但是淘宝的API接口参数比较复杂,可能包含加密密匙等参数:所以,想要通过自己构造API接口获取完整网页信息很难实现(可能只有部分 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. Spring Web MVC(一)
  2. Ubuntu 更新后 VirtualBox 无法启动
  3. linux或者shell进入vi命令
  4. Android 7.0 Keyguard流程分析
  5. HTML5应用 + Cordova = 平台相关的混合应用
  6. CSS:CSS 在工程中改变——面向对象的CSS (OO CSS)
  7. PHP中的__toString方法(实现JS里的链式操作)
  8. vscode 开发vue必备插件_vsCode开发vue项目必备插件
  9. linux+分离线程+退出,Linux下线程终止操作.pdf
  10. 除非万不得已,否则绝不谈判
  11. python画折线图-利用python画折线图
  12. MATLAB语言初步学习(四)
  13. eclipse Tomcat 启动报错
  14. 线性代数 : 矩阵乘法和矩阵的逆
  15. PyTorch搭建GoogLeNet模型(在CIFAR10数据集上准确率达到了85%)
  16. 2020-8-6 Codeforces摸鱼报告
  17. 经典教程 | 基于Spark GraphX实现微博二度关系推荐
  18. 初识C语言答案,《明解C语言》第1章 初识C语言练习题答案(3页)-原创力文档...
  19. Tableau bug合集1:无法展示emoji表情包
  20. toolbar遇到问题和解决方式

热门文章

  1. 对游戏公司运作的理解
  2. HTML之学习的快乐
  3. Matlab录制语音
  4. 小数加分数怎样计算讲解_数的知识_小数、分数讲解
  5. 宏观框架-海通梁中华-01)
  6. rsync定时同步配置
  7. python对acf、pacf复现
  8. 万字长文!Flutter竟然还有这种高端用法?
  9. 最短路 (超详细大全)
  10. V4L2采集YUYV数据—X264编码H264视频实例