30分钟Selenium爬虫快速上手
By GuoYL
Version 01.2021.06.18
致谢:路飞学城樵夫老师
一、爬虫概述
- 什么是爬虫?
爬⾍就是通过编写程序,分析网页源代码来爬取互联⽹上的优秀资源(图⽚, ⾳频, 视频, 数据)。
- 爬虫一定要Python吗?
编程语言只是工具,Java、C等开发语言也可以爬虫。而Python在众多编程语言中上手最快、语法最简单,并且爬虫相关的第三方支持库非常多,实现爬虫更容易。
- 是否合法?
法律是不禁止爬虫的,但是爬虫具有违法风险,恶意的爬虫影响网站的正常运营,必将受到惩罚。我们应当实时优化自己的程序,避免干扰网站的正常运行,当爬取到设计用户隐私和商业机密的内容时,一定及时终止爬取和传播。
二、浏览器元素定位和抓包
为了获取我们期望的数据,编写爬虫程序前需要先分析网页,那么如何查看网页数据呢?这里以Chrome
浏览器为例,快捷键F12
或者如下图所示进入开发者工具。
开发这工具中,爬虫主要用到Elements
和Network
两个功能,Elements
帮助我们定位网页元素,查看网页代码;Network
是抓包工具,查看网页请求数据和响应数据。
进入Elements
我们发现HTML代码太多了,十分不利于阅读。这时我们就需要借助元素选择器,帮我们找到感兴趣的数据。选中左侧的元素选择器,然后我们的鼠标指向网页哪里,就可以在下方看到对应的代码了。
那么抓包有什么用呢?
我们进入抓包工具,刷新页面可以看到抓取到很多东西,选中XHR
进行筛选,可以看到我们刚刚发送的请求包,选中后可以看到包中的数据,包括:
- Request URL:请求地址
- Request Method:
POST
还是GET
- Cookie:本地字符串数据信息(⽤户登录信息, 反爬的token)
- User-Agent:请求载体的身份标识
其中Cookie
和User-Agent
是我们在爬虫过程中模拟请求的关键信息。
三、XPath
XPath是⼀⻔在 XML ⽂档中查找信息的语⾔。⽽我们熟知的HTML恰巧属于XML的 ⼀个⼦集。 所以完全可以⽤XPath去查找html中的内容,在爬虫中应用比较广泛。
学习本章的重点是掌握XPath表达式。
1.安装lxml
模块
pip install lxml
用法:
1.将要解析的html内容构造出etree
对象
2.使用etree
对象的xpath()
方法配合xpath
表达式完成对数据的提取
2.举例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Title</title>
</head>
<body>
<ul>
<li><a href="http://www.baidu.com">百度</a></li>
<li><a href="http://www.google.com">谷歌</a></li>
<li