Python爬虫知识点

2021/11/17 22:10:16

本文主要是介绍Python爬虫知识点,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、 爬虫的原理:

网络爬虫(网络蜘蛛)(网络机器人)是一个自动下载网页的计算机程序或自动化脚本

-------------------------------------------------------------------------------

1、通用网络爬虫(全网爬虫):爬行对象从url扩充至整个Web,适合为搜索引擎搜索广泛的主题,通常采用并行工作方式应对大量刷新页面,对爬取顺序要求低,对爬取速度与存储空间要求较高。

深度优先策略:由低到高,优点:适合垂直搜索或站内搜索

缺点:资源浪费

广度优先策略:由浅入深,优点:无需存储大量节点

缺点:时间较长

-------------------------------------------------------------------------------

   2、聚焦网络爬虫(主题网络爬虫):特点:选择性爬取

基于内容评价的爬取策略:将用户输入的查询词作为主题

缺点:仅包含查询词无法评价页面与主题的相关性

基于链接结构的爬取策略:包含结构信息的半结构化文档Web页面来评价链接的重要性,广泛使用的算法:PageRank算法,可用于排序查询结果,也可用于评价链接重要性,每次选择PageRank值较大页面的链接访问

基于增强学习的爬取策略:利用贝叶斯分类器,基于整个网页文本和链接文本对超链接分类,按照文本重要性排序

基于语境图的爬取策略:建立语境图来学习网页之间的相关度,相关页面距离近的优先访问

-----------------------------------------------------------------------------

3、增量式网络爬虫:只对已下载网页进行增量式更新,只爬取发生变化的的网页,需要对网页的重要性进行排序

广度优先策略

PageRank优先策略            

统一更新法:以相同频率访问网页,不受网页本身改变频率的影响

     个体更新法:根据个体网页的改变频率决定重新访问的频率

     基于分类的更新法:将网页分为更新快的和慢的,分别设定不同频率访问

-------------------------------------------------------------------------------

  4、深层网络爬虫:深层网络爬虫爬取过程中最重要的是表单填写

      基于领域知识的表单填写:通过语义分析选取最合适的关键词填写表单

      基于网页结构分析的表单填写:无领域知识或有限领域知识将Html网页表示为Dom树形式,将表单区分为单属性表单和多属性表单,分别处理

Web页面分为表层页面和深层页面

      表层页面:静态页面为主

      深层页面:无法通过静态链接获取,隐藏在搜索表单后的需要用户提交关键词,深层页面为目前互联网上发展最快和最大的新型信息资源

===========================================================

URL由三部分组成:协议类型,主机名和路径及文件名。

HTTP是建立在TCP上的无状态连接,与WEB连接的http端口默认80

HTTP请求方法:GET(只用于读取据),HEAD,POST(提交表单,上传文件),PUT(更新服务器端的指定资源),DELETE,TRACE,OPTIONS(测试服务器功能是否正常),CONNECT

一般情况至少实现GET和HEAD方法,方法名称区分大小写

200  OK

3XX需要客户端进一步操作,通常用来重定向

400 Bad Request 客户端语法错误,无效或欺骗性请求

403 Forbidden 理解请求拒绝执行(服务器拒绝访问)

404 Not Found  请求资源未在服务器上找到(无法找到请求页面)

405指定资源不支持对应请求方法

500 Internal Server Error 未曾预料的状况(内部服务器错误)

501不认识或不支持对应请求方法

503 Service Unavailable服务器维护或过载

505(浏览器HTTP版本不受支持)

请求报文:请求的方法、URL、协议版本、请求头部和请求数据

响应报文:响应状态、服务器信息、协议版本、响应头部和响应数据

反爬虫目的:防止网站信息被竞争对手随意获取,防止消耗大量服务器资源,影响服务器稳定性,减少运营的网络成本

反爬虫方法:

通过User-Agent校验反爬

User-Agent用于描述搜索引擎的网址名称,区分不同的浏览器,浏览器及当前系统环境的参数的数据放在HTTP请求的Headers部分,Headers的表现形式为key-value对

    通过访问频度反爬

    通过验证码校验反爬

    通过变换网页结构反爬

    通过账号权限反爬

 

二、 爬虫的库:

                 urllib

通用:           Requests

                 urllib3

框架:Scrapy

HTML/XML解析器:lxml     :C语言编写支持XPath

                        Beautiful Soup:纯Python效率低

json.dumps()用于将dict类型的数据转成str

json.loads():用于将str类型的数据转成dict、

json.dump()用于将dict类型的数据转成str,并写入到json文件中

json.load()用于从json文件中读取数据



这篇关于Python爬虫知识点的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程