Python网络爬虫——介绍
网络爬虫库
- urllib 库:Python 「标准库」(自带不用额外装 ),功能基础但代码写起来繁琐,像盖房子的 “基础建材”,能实现爬虫核心操作,但得自己拼逻辑。
- requests 库:Python 「第三方库」(需
pip install requests
安装 ),是在 urllib 基础上做了优化,用起来更简单友好,像 “预制建材”,调用函数就能轻松发请求、拿网页内容,新手常用它入门。 - scrapy 库:Python 「第三方库」(需安装 ),属于 “专业框架级” 爬虫库,适合大规模、结构化的数据抓取,能高效建爬虫项目,像 “专业建房工具包”,适合搞复杂爬虫系统的开发者。
- selenium 库:Python 「第三方库」(需安装 ),能 “驱动浏览器” 模拟人的操作(点按钮、填表单等 ),对付动态网页(js 渲染内容)好用,像 “自动化浏览器助手”,常用来绕过一些反爬,或做自动化测试。
robots.txt 规则
简单说,robots.txt
是网站 “对外声明的爬取规则”,放在网站根目录(比如访问 https://www.douban.com/robots.txt
就能看豆瓣的规则 ),作用是 告诉爬虫哪些内容能爬、哪些不能爬 ,遵守它是网络爬虫的 “基本礼仪”,不然可能触发网站反爬,甚至涉及法律风险。
规则里常见字段和含义:
- User-agent:指定 “针对哪种爬虫 / 搜索引擎” 的规则 。比如
User-agent: *
里的*
代表 “所有爬虫”;如果写User-agent: Wandoujia Spider
,就是专门给 “豌豆荚爬虫” 定规则。 - Disallow:跟在
User-agent
后面,说明 “禁止爬取的路径” 。比如Disallow: /subject_search
,就是禁止对应爬虫去爬网站里/subject_search
这个目录 / 页面的内容;要是Disallow: /
,那直接 “禁止爬取整个网站”。 - Allow:和
Disallow
相反,说明 “允许爬取的路径” ,优先级比Disallow
高(允许的会 “覆盖” 禁止的 ),比如Allow: /ads.txt
,就是允许爬ads.txt
这个文件。 - Sitemap:标注 “网站地图地址” ,方便爬虫快速了解网站结构,比如
Sitemap: https://www.xxx.com/sitemap.xml
,爬虫可以通过它更高效抓内容。 - Crawl-delay:告诉爬虫 “两次请求之间至少隔多久”(单位秒 ),避免爬虫频繁请求把网站搞崩,比如
Crawl-delay: 5
,就是让爬虫每次访问间隔≥5 秒。
关键提醒:哪怕网站没写robots.txt
,也得守《网络安全法》等法规,不能乱爬敏感 / 侵权内容;写爬虫时,先查目标站robots.txt
,老老实实遵守规则,才是 “可持续爬取” 的正确姿势~