Python爬虫核心知识点

发布时间:2026/6/24 3:08:30

Python爬虫核心知识点 1.网络爬虫的定义作用网络爬虫又称网页蜘蛛、网络机器人是一种按照既定规则自动抓取互联网网页数据的程序/脚本模拟人类浏览器访问网页批量获取网页内容。作用1. 批量采集全网公开文本、图片、链接、资讯等数据2. 为搜索引擎、数据分析、舆情监控、竞品分析、行业调研提供原始数据3. 实现信息聚合、内容同步、价格监控等自动化业务。2.大数据一般来源按按数据产生主体划分国家企业个人机器按数据的类型划分结构化数据半结构化数据非结构化数据按来源系统分信息管理系统网格信息系统物联网系统科学实验系统3.按数据类型划分1. 结构化数据格式固定、规整如数据库表、Excel、表格数据2. 半结构化数据有简单标签/结构无严格范式如XML、HTML、JSON3. 非结构化数据无固定格式如文本、图片、音频、视频、文档。4.大数据采集方式数据抽取①基于查询数据的数据抽取②基于日志的数据抽取数据抓取①批量网络爬虫②增量网络爬虫③垂直网络爬虫数据收集①观察法②访谈法③问卷法④测试法5.数据预处理数据清洗数据集成数据转换数据规约6.爬虫原理获取初始的URL根据初始的URL爬取页面并获得新的URL将新的URL放入URL队列中从URL队列中读取新的URL根据新的URL爬取网页同时从新网页中获取新的URL并重复上述的爬取过程7.Python环境搭建首先安装Python并勾选配置系统环境变量安装完成后在命令行查看版本验证接着切换清华镜像源加快下载速度使用pip依次安装requests、beautifulsoup4、lxml、parsel等静态网页解析库应对动态网页可以安装selenium或者playwright同时安装fake‑useragent、pyexecjs处理反爬开发工具选用VS Code或者PyCharm建议使用venv搭建虚拟环境隔离项目依赖最后运行一段访问百度的测试代码检验爬虫环境能否正常工作。8.Python常用函数函数 简要描述print() 打印字符串raw_input() 从用户键盘捕获字符len() 计算字符串、列表等长度format() 实现格式化输出type() 查询对象的类型int()、float()、str() 类型的转化函数分别转为整型、浮点型以及字符串型id() 获取对象的内存地址help() Python 的帮助函数str.islower() 判断字符是否为小写str.space() 判断字符是否为空格str.replace() 替换字符eval() 执行字符串表达式math.sin() sin 函数math.pow() 计算次方函数示例 3**4表示 3 的 4 次方os.getcwd() 获取当前工作目录os.listdir() 显示当前目录下的文件time.sleep() 停止一段时间random.randint() 产生随机整数file.readlines() 读取文件返回列表file.readline() 读取一行文件并返回字符串ord()和chr(ASCII) 将字符串转化为ASCIIASCII转化为字符串find(s[,start,end]) 从字符串中查找strip()、lstrip()、rstrip() 去除指定字符默认去除空格split() 以固定字符或字符串来间隔字符串isalnum() 判断是否为有效数字或字符isalpha() 判断是否全为字符isdigit() 判断是否全为数字lower() 将数据改成小写upper() 将数据改成大写startswith() 判断字符串是否以某字符开始endswith() 判断字符串是否以某字符结尾file.write() 文件写入函数9.list列表1. 定义有序、可变序列使用 [] 定义元素可重复、可存放任意数据类型2. 特点支持增删改查下标索引访问可切片3. 常用方法 append() 、 extend() 、 pop() 、 remove() 、 sort() 、 reverse() 。10.tuple 元组1. 定义有序、不可变序列使用 () 定义单元素需加逗号2. 特点元素一经定义无法修改只读属性运行效率高于列表3. 使用场景存储固定数据、作为字典键、函数多返回值。11.面向对象的三大特征1. 封装将属性和方法封装在类中隐藏内部实现仅对外提供访问接口2. 继承子类复用父类的属性和方法实现代码复用3. 多态不同子类重写父类方法调用同一方法呈现不同执行效果。12.HTTP协议请求的主要方法1. GET从服务器获取数据参数拼接在URL中明文传输2. POST向服务器提交数据参数放在请求体中相对安全3. PUT修改/更新服务器资源4. DELETE删除服务器指定资源5. HEAD仅获取响应头不获取网页主体内容。爬虫最常用GET、POST。13.requsts库是什么requests 是Python第三方HTTP请求库基于urllib封装语法简洁、功能强大专门用于模拟浏览器发送网络请求是爬虫主流工具库。14.requests库发送get请求和post请求的基本语法get请求import requestsurl 目标网址response requests.get(url, headers请求头, paramsURL参数)post请求import requestsurl 目标网址# data:表单参数 json:JSON格式参数response requests.post(url, headers请求头, data表单数据, jsonjson数据)15.常用请求头的含义请求头 含义HOST 接受请求的服务器地址可以是IP:端口号也可以是域名如www.cqie.edu.cnUser‑Agent 用户代理编写爬虫至关重要如Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36Connection 指定与连接相关的属性如Connection:Keep‑AliveAccept‑Charset 通知服务端发送数据的编码格式Accept‑Encoding 通知服务端发送数据的压缩格式如gzip,deflateAccept‑Language 通知服务端发送数据的语言如zh‑CN,zh;q0.9Referer 页面跳转表明产生请求的网页来自哪个URL用户是从该Referer页面访问到当前请求的页面这个属性可以用来跟踪Web请求来自哪个页面Cookie Cookie其实就是由服务端发给客户端的特殊信息而这些信息以文本文件的方式存放在客户端然后客户端每次向服务端发送请求的时候都会带上这些特殊的信息。服务端在接收到Cookie以后会验证Cookie的信息以此来辨别用户的身份。类似于通行证16.如何使用request库提取网页数据1. 导入 requests 库定义目标URL和请求头2. 调用 requests.get()/post() 发送请求获取响应对象3. 通过 response.text 获取网页字符串源码 response.content 获取二进制数据图片/文件4. 结合BeautifulSoup、正则、xpath等工具解析源码提取目标内容5. 保存解析后的数据。17.BeautifulSoup解析器优缺点对比解析器 使用方法 优势 劣势Python标准库 BeautifulSoup(markup,html.parser) 1.Python的内置标准库2.执行速度适中3.文档容错能力强 Python 2.7.3或3.2.2前的版本中文档容错能力差lxml的HTML解析器 BeautifulSoup(markup,lxml) 1.速度快2.文档容错能力强 需要安装C语言库lxml的XML解析器 BeautifulSoup(markup,xml) 1.速度快2.唯一支持XML的解析器 需要安装C语言库html5lib BeautifulSoup(markup,html5lib) 1.最好的容错性2.以浏览器方式解析文档3.生成HTML5格式的文档 速度慢不依赖外部扩展18.Select函数的使用方法用法 作用 实例soup.select(CSS选择器) 获取HTML片段返回类型为列表 soup.select(.navli)提取类名为nav的元素下的所有li标签text 获取标签文本 soup.select(.nav a)[0].text获取类名为nav的元素第一个a标签的文本attrs[属性名] 获取属性值 soup.select(.nav a)[0].attrs[href]获取类名为nav的元素第一个a标签的href属性19.scrapy框架是什么Scrapy是Python开发的开源分布式爬虫框架集成了请求、解析、数据持久化、调度、管道等全套功能专为大规模爬虫设计支持异步爬取、分布式部署适合开发企业级爬虫项目。20.scrapy对应的核心组件组件 描述 类型ENGINE 引擎框架的核心其他所有组件在其控制下协同工作 内部组件SCHEDULER 调度器负责对 SPIDER 提交的下载请求进行调度 内部组件DOWNLOADER 下载器负责下载页面(发送 HTTP 请求/接收 HTTP 响应) 内部组件SPIDERS 爬虫负责提取页面中的数据并产生对新页面的下载请求 用户实现MIDDLEWARE 中间件负责对 Requests 对象和 Response 对象进行处理 可选组件ITEM PIPELINE 数据管道负责对爬取到的数据进行处理 可选组件21.数据清理的步骤和原理原理原始爬虫数据存在冗余、错误、缺失、重复内容通过规则过滤、修正数据提升数据质量保证后续分析有效。步骤1. 数据去重删除完全重复/逻辑重复的数据2. 缺失值处理删除空值、填充默认值/均值3. 异常值过滤剔除乱码、格式错误、超出合理范围的数据4. 格式统一统一日期、数字、文本格式5. 特殊字符清洗去除空格、换行、符号、乱码6. 数据脱敏遮挡手机号、身份证等隐私信息。22.数据预处理的主要目的1. 清洗脏数据提升数据质量2. 统一数据格式适配后续分析、建模、存储要求3. 减少数据冗余降低存储与计算成本4. 剔除无效数据避免影响数据分析结果5. 标准化数据便于多源数据融合。23.数据质量的概念数据质量是衡量数据可用性、可靠性的综合标准指数据满足业务、分析、使用需求的程度。核心评价维度完整性、准确性、唯一性、一致性、时效性、有效性。24.数据有哪些缺陷怎么处理1. 数据缺失- 缺陷字段为空、内容缺失- 处理少量缺失直接删除重要数据用均值、众数、默认值填充。2. 数据重复- 缺陷多条完全一致/逻辑重复数据- 处理根据唯一字段ID、标题去重。3. 数据异常异常值- 缺陷数值超限、乱码、逻辑错误- 处理剔除异常数据或修正为合理值。4. 格式不统一- 缺陷日期、数字、文本格式混乱- 处理编写规则批量转换为统一格式。5. 数据冗余/无效内容- 缺陷多余符号、广告、无关文本、换行空格- 处理正则表达式、字符串函数过滤清理。6. 数据不一致- 缺陷同一字段表述不统一如简称/全称混用- 处理建立映射规则统一标准化表述。一、核心区别简答题必背简述 etree.fromstring() 与 etree.HTML() 的主要区别。1. etree.HTML()① 根节点会生成标签作为根节点网页全部内容都包含在其中。② 容错性对于结构不完整的HTML文本可以自动补齐残缺标签修复网页结构。③ XPath查询路径以 / 开头时从根节点开始查找。​2. etree.fromstring()① 根节点直接以传入HTML文本的最外层标签作为根节点。② 容错性如果传入残缺的HTML不会自动补全标签。③ XPath查询路径以 / 开头以传入内容的最外层节点作为检索起点。二、parse()补充考点etree.parse()用于解析本地的HTML文件etree.HTML()、fromstring()用来解析字符串形式的网页源码

相关新闻