Spider
爬虫过程:
1:获取网络数据:requests ,slesnium
- 伪装浏览器,登录反爬,代理ip
2:解析数据(从获取的网络数据中提取有效数据):正则表达式,基于css选择器(bs4), 基于xpath的解析器(lxml)
3:保存数据:csv , excel
requests :
—— python获取网络数据的第三方库(基于http或者https协议网络请求)
爬虫使用的两个场景:直接请求网络地址,对提供网页数据接口发送
requests 的基本用法:对目标网页地址发送请求
requests.get(网页地址) —— 获取指定数据返回一个响应
import requests
resopnse = requests.get("https://cd.zu.ke.com/zufang")
#print(resopnse) # <Response [200]>
print(resopnse.text)
# 获取响应状态码
# print(resopnse.status_code)
#
# if resopnse.status_code == 200: # 如果不等于200,可以直接退出
# pass
# 获取响应头
#print(resopnse.headers)
# 请求内容(返回正正有用的数据)
"""
response.content —— 二进制类型数据(比如图片下载。视频,音频)
response.text —— 字符串类型(网页)
response. —— 对请求内容做完json解析后数据(json数据接口)
"""
认识前端
前端相关开发技术:html , css , js(原生js , Vue , React)
html —— 是以标签为单位提供网页内容。不同的标签可以提供不同的内容,
标签的语法结构:
- 双标签: <标签名 属性名1=属性值1 属性名2 = 属性值2 …>标签内容(可有可无,也是外边标签的子标签)</标签名>
- 单标签:<标签名 属性名1=属性值1 属性名2 = 属性值2 ,,,,>或者<标签名 属性名1=属性值1 属性名2 = 属性值2 …/>
src= “图片地址”
css基本认识
-
css语法:
选择器{属性1: 属性值1; 属性2:属性值2; …}
选择器 - 选中需要添加样式的标签
1)元素选择(标签选择) - 将标签作为选择器,选中所有指定的标签
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的标签
4 群组选择选择器 : 将多个选择器用逗号隔开作为一个选择器
p,a{} - 选择所有的p标签和所有的a标签
#p1,.c1,p{} - 选择id为p1的标签和class为c1标签以及所有的p标签5)子代选择器 - 多个选择器用>隔开作为一个选择器
div>p{}6)后代选择器 - 多个选择器用空格隔开作为一个选择器
div p{} -
—— 负责网页内容的样式和布局
css语法:选择器{属性1:属性值1;属性2:属性值2;,}
设置字体大小:font-size
选择器:选中需要添加样式的标签
1 )元素选择:—— 将标签名作为选择器,选中所有选则的标签
p{}:选中所有的p标签
a{}:选中所有的a 标签
2)id选择器:在id属性前面加一个# 作为一个选择器,选中id属性值为指定标签
3)class选择器:在class属性值前面加
大于符号:父子
空格: 后代
js —— 负责网页内容变化