python网路爬虫介绍
选择器
1.类名选择器 .
2.id选择器 #
3.标签选择器
组合器
直接子代组合器
后代组合器
“ ”(空格)组合器选择前一个元素的后代节点。
语法:A B
例子:div span 匹配所有位于任意
直接子代组合器
组合器选择前一个元素的直接子代的节点。
语法:A > B
例子:ul > li 匹配直接嵌套在
- 元素内的所有
- 元素。
一般兄弟组合器
~ 组合器选择兄弟元素,也就是说,后一个节点在前一个节点后面的任意位置,并且共享同一个父节点。
语法:A ~ B
例子:p ~ span 匹配同一父元素下,
元素后的所有 元素。
紧邻兄弟组合器
- 组合器选择相邻元素,即后一个元素紧跟在前一个之后,并且共享同一个父节点。
语法:A + B
例子:h2 + p 会匹配紧邻在 h2 元素后的第一个
元素。
列组合器 实验性
|| 组合器选择属于某个表格行的节点。
语法:A || B
例子:col || td 会匹配所有 作用域内的 (en-US) 元素。
什么是网络爬虫
我们将互联网(因特网)比作一张巨大的蜘蛛网,而爬虫就是一个蜘蛛,沿着蜘蛛网抓取想要的昆虫(数据)
爬虫就是一个探测机器,模拟人的行为去各个网站爬取想要的数据,像一只虫子在网上不知疲倦的工作爬虫的发展
1.在网站发展以前,最开始的网站数量很少,用户访问网站都是通过输入域名进行访问
2.随着互联网发展,网站的数量呈爆炸式增长,用户的数量也在变多,需求随之发生变化,从主动浏览变成被动查询
3.搜索网站随之诞生,爬虫也随之诞生网络请求
客户端向服务器发送请求
1.请求网址 request url(统一资源定位符)
2.请求方法 request methods
3.请求头 request headers
谷歌浏览器 webkit Blink firefox IE safari 欧鹏
urllib/python 3.0
4.请求体 request body爬虫模拟浏览器,发送请求,获取响应
为什么要模拟浏览器
一般来说服务器是不欢迎爬虫程序的,爬虫要尽可能的模拟正常用户发送请求
爬虫的工作—模拟客户端访问,抓取数据
反爬的工作—保护数据,阻止恶意网络攻击
反反爬—针对反爬采取的措施爬虫的用途
数据分析/人工数据集
社交软件冷启动
舆情监控
竞争对手监控
自动化测试
做一些脱离手动的操作(买票,投票)
灰产业
薅羊毛、发起网络攻击、水军robots协议
一个约束文本文件,防君子不防小人
爬虫的分类
通用爬虫 特点:爬取的网站没有上限 百度、360、google SEO优化(获得搜索引擎免费流量扶持) SEM搜索引擎营销 聚焦爬虫 特点:爬取的网站有上限,有明确的目标 分类 功能性爬虫 特点:不针对数据,主要目的是为了实现某一些功能 数据增量爬虫 特点:获取数据用于后续的分析 分类 url与数据同时变化 数据与url同时更新 url不变,数据发生变化 数据部分更新