模板网站建设哪家专业,合肥市建设工程市场信息价网站,注册域名要钱吗,关于icp备案信息中注销网站的通知系列文章目录
01 初始爬虫 文章目录 系列文章目录前言1 爬虫和Python2 爬虫的矛盾2.1 爬虫与反爬2.2 robots核心字段重要规则说明非标准扩展指令协议生效条件局限性验证工具 2.3 一个爬虫demo 3 Web请求与HTTP协议3.1 一个web请求的全过程3.2 判断页面源代码位置3.3 HTTP 协议…系列文章目录
01 初始爬虫 文章目录 系列文章目录前言1 爬虫和Python2 爬虫的矛盾2.1 爬虫与反爬2.2 robots核心字段重要规则说明非标准扩展指令协议生效条件局限性验证工具 2.3 一个爬虫demo 3 Web请求与HTTP协议3.1 一个web请求的全过程3.2 判断页面源代码位置3.3 HTTP 协议HTTP 请求HTTP 响应 3.4 requests 模块入门 总结 前言
Datawhale是一个专注于AI与数据科学的开源组织汇集了众多领域院校和知名企业的优秀学习者聚合了一群有开源精神和探索精神的团队成员零基础网络爬虫技术 1 爬虫和Python 爬虫就是通过编写程序来爬取互联网上的图片、音频、视频、数据等。 Python 是一门上手快、语法简单的编程语言。 2 爬虫的矛盾
2.1 爬虫与反爬 首先爬虫在法律上不是被禁止的。 爬虫分为 善意爬虫不破坏被爬取的网站的资源正常访问一般频率不高不窃取用户隐私恶意爬虫影响⽹站的正常运营如抢票秒杀疯狂请求⽹站资源造成⽹站宕机 因此网站有了反爬机制制定相应的策略或者技术手段防止爬虫程序进行网站数据的爬取。 爬虫程序就有了反反爬策略制定相关的策略或者技术手段破解网站中具备的反爬机制。 最后双方制定君子协议: robots 协议。 根据协议网站管理员可以在网站域名的根目录下放一个 robots.txt 的文本文件里面可以指定不同的网络爬虫能访问的页面和禁止访问的页面。网络爬虫在采集这个网站之前首先获取到这个文件然后解析到其中的规则最后根据规则来采集网站的数据。
2.2 robots
robots.txt 文件由一组规则组成每组规则以 User-agent 开头后接允许或禁止的路径规则。
核心字段
User-agent 指定规则适用的爬虫名称如 * 表示所有爬虫。Disallow 指定禁止爬虫访问的路径路径需为绝对路径。Allow 指定允许爬虫访问的路径某些搜索引擎支持但非标准协议的一部分。Sitemap 告知爬虫网站的XML站点地图位置帮助索引内容。
重要规则说明
路径匹配 使用前缀匹配如 Disallow: /admin 会禁止 /admin/、/admin.php 等。支持通配符如 * 匹配任意字符$ 匹配路径结尾但需搜索引擎支持。 大小写敏感 路径区分大小写如 /Images/ 和 /images/ 是不同的。优先级 Allow 规则通常优先于 Disallow若同时存在冲突规则。最长匹配原则 当多条规则冲突时选择最长匹配的路径规则。
非标准扩展指令
部分搜索引擎支持额外指令非协议官方标准
Crawl-Delay 设置爬虫抓取间隔如 Crawl-Delay: 10 表示每10秒请求一次。Host 指定首选域名如 Host: www.example.com。Clean-param 声明某些参数不影响页面内容如 Clean-param: sessionid /index.php。
协议生效条件
文件必须位于网站根目录如 https://www.example.com/robots.txt。文件编码需为 UTF-8 且无BOM头。遵循协议的爬虫会遵守规则但恶意爬虫可能无视协议。
局限性
不保证隐私 robots.txt 无法阻止直接访问敏感内容需通过身份验证或其他方式保护。动态URL处理 无法完全阻止参数生成的动态页面被爬取。缓存延迟 爬虫可能不会实时更新规则需等待重新抓取。
验证工具
Google Search Console、Bing Webmaster Tools 提供 robots.txt 测试功能。在线工具如 Robots.txt Checker 可验证规则是否正确。
2.3 一个爬虫demo
获取百度首页 3 Web请求与HTTP协议
3.1 一个web请求的全过程
![[Pasted image 20250618162214.png]]
3.2 判断页面源代码位置
上面是服务器渲染即服务器直接把数据全部写入到html中。下面是客户端渲染⼀般是第⼀次请求服务器返回⼀堆HTML框架结构。然后再次请求到真正保存数据的服务器由这个服务器返回数据最后在浏览器上对数据进⾏加载。
![[Pasted image 20250618162420.png]]
3.3 HTTP 协议 协议就是两个计算机之间为了能够流畅的进⾏沟通⽽设置的⼀个君⼦协定。 常⻅的协议有TCP/IPSOAP协议HTTP协议SMTP协议等等。 HTTP协议Hyper Text Transfer Protocol超⽂本传输协议的缩写是⽤于从万维⽹WWWWorld Wide Web 服务器传输超⽂本到本地浏览器的传送协议。 HTTP 请求
有三块内容
请求⾏ - 请求⽅式(get/post) 请求url地址 协议请求头 - 放⼀些服务器要使⽤的附加信息请求体 - ⼀般放⼀些请求参数
请求⽅式 GET: 显示提交 POST: 隐示提交 请求头中最常⻅的⼀些重要内容爬⾍需要 User-Agent请求载体的身份标识⽤啥发送的请求Referer防盗链这次请求是从哪个⻚⾯来的反爬会⽤到cookie本地字符串数据信息⽤户登录信息反爬的token
HTTP 响应
也有三块内容
状态⾏ - 协议 状态码响应头 - 放⼀些客户端要使⽤的⼀些附加信息响应体 - 服务器返回的真正客户端要⽤的
响应头中⼀些重要的内容 Content-Type返回内容的内容类型比如Content-Type: text/html; charsetutf-8各种神奇的莫名其妙的字符串这个需要经验了⼀般都是token字样防⽌各种攻击和反爬
3.4 requests 模块入门
常⽤的抓取⻚⾯的模块通常使⽤⼀个⽐urllib还要简单的第三⽅模块requests。 总结
Python爬虫的入门介绍。