Python爬虫进阶(一)——爬虫之动态数据与selenium

本文介绍了Python爬虫进阶知识,重点讲解了动态HTML技术,包括JS、jQuery和ajax。接着详细阐述了Selenium和chromedriver的用途,安装过程,以及如何使用Selenium获取动态数据的基本操作,如定位元素、操作表单、鼠标行为链、页面等待、多窗口和页面切换等。
摘要由CSDN通过智能技术生成

从这一章开始,咱们将探讨爬虫的进阶部分,难度比起之前的初级也是有所提升。

一、动态HTML技术
二、Selenium+chromedriver介绍
三、Selenium获取动态数据基本操作

一、动态HTML技术

1.动态HTML技术了解

这是几种动态页面技术

1.1 JS

它是网络上最常用的脚本语言,它可以收集用户的跟踪数据,不需要重载页面直接提交表单,在页面嵌入多媒体文件,甚至运行网页。

1.2 jQuery

jQuery是一个快速、简介的JavaScript框架,封装了JavaScript常用的功能代码。

1.3 ajax

ajax可以使用网页实现异步更新,可以在不重新加载整个网页的情况下,对网页的某部分进行更新

2.如何获取ajax数据

(1)直接分析ajax调用的接口,然后通过代码请求这个接口。

(2)使用Selenium+chromedriver模拟浏览器行为获取数据。

这是两种方法的对比:

方式 优点 缺点
分析接口 直接可以请求到数据。不需要做一些解析工作。代码量少,性能高。 分析接口比较复杂,特别是一些通过js混淆的接口,要有一定的js功底。容易被发现是爬虫。
selenium 直接模拟浏览器的行为。浏览器能请求到的,使用selenium也能请求到。爬虫更稳定。 代码量多。性能低。

selenium能够模拟浏览器的行为,进行一系列的操作。相比之下更为容易。

二、Selenium+chromedriver介绍

1.Selenium

selenium是一个web的自动化测试工具,最初是为网站自动化测试而开发的,selenium可以直接运行在浏览器上,它支持所有主流的浏览器,可以接收指令,让浏览器自动加载页面获取需要的数据,甚至页面截屏。

chromedriver是一个驱动Chrome浏览器的驱动程序,使用它才可以驱动浏览器。当然针对不同的浏览器有不同的driver。

以下列出了不同浏览器及其对应的driver
Chrome:https://sites.google.com/a/chromium.org/chromedriver/downloads

Firefox:https://github.com/mozilla/geckodriver/releases

Edge:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

Safari:https://webkit.org/blog/6900/webdriver-support-in-safari-10/

2.chromedriver

咱们需要下载chromedriver

下载地址:https://www.cnblogs.com/JHblogs/p/7699951.html

安装总结:https://www.jianshu.com/p/a383e8970135

3.安装Selenium和chromedriver

安装Selenium

pip install selenium

安装chromedriver:下载完成后,放到不需要权限的纯英文目录下就可以了。

三、Selenium获取动态数据基本操作

1.基本过程

from selenium import webdriver
from selenium.webdriver.common.by import By

# 实例化浏览器
driver = webdriver.Chrome()

# 发送请求
driver.get('https://www.baidu.com')

# 窗口最大化
driver.maximize_window()

# 退出当前窗口
driver.close()

# 退出浏览器
driver.quit()

跟之前的原理差别不大,也是先赋予一个selenium对象,再对对象进行一系列的操作,获取到自己想要的数据。

2.定位元素

find_element_by_id:是根据id来查找某个元素。

# 方法1
submitTag = driver.find_element_by_id('su')
# 方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值