爬虫从入门到升仙之概念篇

软件安装

使用anacinda3 类似pythcarm的工具

1.爬虫的知识点

狱友你好

1.1什么是爬虫

就是通过编写程序模拟浏览器上网,让其去互联网中抓取数据的过程。

1.2爬虫的分类:

  • 通用爬虫:爬取一整张页面源码数据。
  • 聚焦爬虫:爬取页面中局部的数据。一定是在通用爬虫的基础上实现。
    • 数据解析
  • 增量式爬虫:用来监测网站数据更新的情况。以便于爬取最新更新出来的数据!

1.3爬虫合法性探究:

  • 爬虫的风险体现:
    • 爬虫干扰了被访问网站的正常运营;
    • 爬虫抓取了受到法律保护的特定类型的数据或信息。

1.4如何规避风险:

  • 严格遵守网站设置的robots协议;
  • 在规避反爬虫措施的同时,需要优化自己的代码,避免干扰被访问网站的正常运行;
  • 在使用、传播抓取到的信息时,应审查所抓取的内容,如发现属于用户的个人信息、隐私或者他人的商业秘密的,应及时停止并删除。

1.5反爬机制

  • 门户网站通过相应的策略和技术手段,去约束,防止爬虫程序进行网站数据的爬取
    
    • robots协议:存在于服务器端的一个纯文本的协议。
      • User-Agent:就是请求载体的身份标识。
      • 特点:防君子不放小人

1.6反反爬策略

  • 爬虫程序通过相应的策略和技术手段,破解门户网站的反爬虫手段,从而爬取到相应的数据。
    

1.7http的头信息

- User-Agent #用户访问标识
- Connection:‘close’#有无连接的标识 长连接 keep—alive
- content-type #显示字符集设定
  • User-Agent:用户访问的标识

  •  'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36' #模拟浏览器发送请求
    
  • Connection:

  • ‘close’短连接 则在一次请求/响应之后,就会关闭连接
    
  • 在首部字段中设置Connection:keep-aliveKeep-Alive: timeout=60,表明连接建立之后,空闲时间超过60秒之后,就会失效。

  • 如果在空闲第58秒时,再次使用此连接,则连接仍然有效,使用完之后,重新计数,空闲60秒之后过期。

  • 在首部字段中只设置Connection:keep-alive,表明连接永久有效。

  • content-type #显示字符集设定

2.爬虫基本流程

img

1、发起请求
    使用http库向目标站点发起请求,即发送一个Request
    Request包含:请求头、请求体等

2、获取响应内容
    如果服务器能正常响应,则会得到一个Response
    Response包含:html,json,图片,视频等

3、解析内容
    解析html数据:正则表达式,第三方解析库如Beautifulsoup,pyquery等
    解析json数据:json模块
    解析二进制数据:以b的方式写入文件

4、保存数据
    数据库
    文件

2.1请求与响应

#http协议:        
    http://www.cnblogs.com/linhaifeng/articles/8243379.html

#Request:
    用户将自己的信息通过浏览器(socket client)发送给服务器(socket server)

#Response:
    服务器接收请求,分析用户发来的请求信息,然后返回数据(返回的数据中可能包含其他链接,如:图片,js,css等)

#ps:
    浏览器在接收Response后,会解析其内容来显示给用户,而爬虫程序在模拟浏览器发送请求然后接收Response后,是要提取其中的有用数据
posted @ 2019-12-04 20:13  strawberry*  阅读(123)  评论(0编辑  收藏  举报