一、爬虫相关
爬虫:获取网络数据(通过各种互联网产品公开的数据)
网络数据来源:网站对应的网页、手机App
爬虫过程:
-
获取网络数据:requests、selenium
1)浏览器伪装
2)登录反爬
3)代理ip
-
解析数据(从获取到的网络数据中提取有效数据):正则表达式、基于css选择器的解析器(bs4)、
基于xpath的解析器(lxml)
-
requests:python获取网络数据的第三方库(基于http或者https协议的网络请求)
爬虫使用requests的两个场景:直接请求网页地址、对提供网页数据的数据接口发送请求。
-
requests基本用法
1)对目标网页直接发送请求
requests.get(网页地址):获取指定页面的数据返回一个响应对象。
获取响应状态码:响应对象.status_code
获取响应头:响应对象.headers
请求内容:
- 响应对象.content —— 二进制类型的数据(图片、视频、音频等,例如:图片下载)
- 响应对象.text —— 字符串类型的数据(网页)
- 响应对象.json —— 对请求内容做完json解析后的数据(json数据接口)
-
保存数据:csv(excel)
二、网页 - html、css(css选择器)
-
html基础
html是以标签用来给网页提供内容的,不同的标签可以提供不同的内容。
标签的语法结构是固定的:
1)双标签:<标签名 属性值1=属性值1 属性名2=属性值2>标签内容</标签名>;
2)单标签:<标签名 属性值1=属性值1 属性名2=属性值2 …> 或者 <标签名 属性值1=属性值1 属性名2=属性值2 …>。 -
css基础
1)css语法:
- 选择器:{属性1:属性值1,属性2:属性值2}
- 选择器 —— 选中需要添加样式的标签
2)css选择器
-
元素选择器(标签选择器) —— 将标签作为选择器,选中所有指定的标签。
p{} —— 选中所有的p标签;
a{} —— 选中所有的a标签;
-
id的选择器 —— 在id属性值前面加#作为一个选择器,选中id属性值为指定的标签;每一个可见的标签都可以设置id属性,并且一个页面中,同一个id值只有一个标签。
#p1 —— 选中id属性值为p1的标签;
#a —— 选中id属性值为a的标签;
-
class选择器 —— 在class属性前加. ,作为一个选择器,选中class属性值为指定的标签,不同的标签可以有相同的class值,同一个标签可以有不同的class值。
.c1 —— 获取class值为c1的所有标签;
p.c1 —— 获取class值为c1的p标签;
.c1.c2 —— 获取class值同时为c1和c2的所有标签。
-
群组选择器 —— 将多个选择器用逗号隔开作为一个选择器
p,a{} —— 选择所有的p标签和所有的a标签;
#p1, .c1,p{} —— 选择id为p1的标签和class为c1标签以及所有的p标签。
-
子代选择器 —— 多个选择器用>隔开作为一个选择器
div>p{}
-
后代选择器 —— 多个选择器用空格隔开作为一个选择器
div p{}