爬虫

 

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 (用户代理)

posted on 2019-05-30 11:56  Little_Raccoon  阅读(164)  评论(0编辑  收藏  举报