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爬虫知识点的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程