爬虫
http:
超文本传输协议
默认端口:80
https:
http+ssl(安全套接字层)
默认端口:443
https比http更安全,但是性能更低(耗时更长)
GET 和 POST 方法有什么区别呢?
哪些地方会用到post请求:
登录注册(post 比 get 更安全)
需要传输大文本内容的时候(post 请求对数据长度没有要求)
所以同样的,我们的爬虫也需要在这两个地方回去模拟浏览器发送post请求
cookie 和 session的区别:
cookie数据存放在客户的浏览器上,session数据存放在服务器上
cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗
session会在一定时间内保存在服务器上,当访问增多,会比较占用你的服务器的性能
单个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20个cookie
爬虫处理cookie和session
带上cookie,session的好处:
能够请求到登录之后的页面
带上cookie,session的弊端:
一套cookie和session往往和一个用户对应
请求太快,请求次数太多,容易被服务器识别为爬虫
不需要cookie的时候尽量不去使用cookie
但是为了获取登录之后的页面,我们必须发送带有cookies的请求
处理cookies,session请求
requests提供了一个叫做session类,来实现客户端和服务端的会话保持
使用方法:
1.实例化一个session对象
2.让session发送get或者post请求
session = requests.session()
response = session.get(url,headers)
响应状态码(status code)
200:成功
302:临时转移至新的url
307 : 临时转移至新的url
404 : not found
500 : 服务器内部错误
爬虫的分类
通用爬虫:通常值搜索引擎的爬虫 步骤:抓取网页----->数据存储------>预处理------->提供检索服务,网站排名
聚焦爬虫:针对特定网站的爬虫 步骤:url list ------>响应内容------>提取数据------->入库
提取url
网络爬虫(又叫网页蜘蛛,网络机器人)就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序
只要是浏览器能做的事情,原则上,爬虫都能做
Robots协议:网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取
爬虫要根据当前url地址对应的响应为准,当前url地址的elements的内容和url的响应不一样
页面上的数据在哪里
当前url地址对应的响应中
其他的url地址对应的响应中
比如ajax请求中
js生成的
部分数据在响应中
全部通过js生成
User-agent (用户代理)