可以爬取的网站
可以爬取的网站
2025年4月 · 技术笔记
昨天帮朋友抓一个公开的天气历史数据,写了个小脚本,网站十分钟搞定。可爬他有点惊讶:“现在爬虫不是网站很容易被封吗?”我回了一句:封的是行为,不是可爬网站本身。绝大多数网站并没有你想的网站那么“反爬”,只是可爬你没找对路子。
先说一个我常用的网站例子:books.toscrape.com。这个网站是可爬专门给人练手用的,页面结构几十年不变,网站没有任何反爬机制,可爬连robots.txt都写着“随便爬”。网站它的可爬存在本身就说明一件事——有些网站就是让你爬的。比如公开的网站政府数据门户、大学实验室的可爬开放数据集、维基百科的静态镜像站。这些地方的数据本来就是公开资源,你写个脚本批量拿下来,没人会找你麻烦。
但现实里更常见的情况是:网站没明说禁止,但也没说欢迎。这时候就得看robots.txt了。我习惯先敲一行命令:curl https://目标网站/robots.txt。如果看到Disallow: /,那基本可以放弃,除非你打算跟对方玩猫鼠游戏。如果只禁了后台路径(/admin/、/search/),那说明前台内容大概率是开放的。比如豆瓣的robots.txt就只禁了部分动态接口,静态页面随便看。不过豆瓣后来加了频率限制,你爬太快照样封IP——这就是另一回事了。
“能爬”不等于“该爬”。我见过有人写脚本把某政府公开数据站整站拖下来,结果对方服务器扛不住,直接挂了。后来那个站加了验证码,所有人都得手动查。一个人图方便,把所有人的路堵死了。
技术层面,判断一个网站能不能爬,我一般看三点。第一,数据是不是服务端渲染的。打开开发者工具,刷新页面,如果Network里能看到完整的HTML返回,那基本没问题。如果是React或Vue那种前端渲染,数据藏在XHR请求里,那就得分析接口。第二,有没有登录墙。需要登录才能看的内容,爬虫得带cookie,这就涉及账号安全,不建议碰。第三,请求频率。再开放的网站,你一秒发一百个请求,对方也会把你当DDoS打。
我自己的习惯是:先用requests裸奔试一次,不加任何header。如果返回403,再加User-Agent。如果还不行,就上selenium或者playwright模拟浏览器。但说真的,大部分公开数据站,连User-Agent都不查。比如quotes.toscrape.com,你用curl都能直接拿到内容。另一个我常爬的是news.ycombinator.com,它的页面结构极其简单,robots.txt只禁了/vote和/reply,首页和评论页随便抓。我写过一个脚本每天抓前100条帖子存到本地数据库,跑了两年多,从来没被封过。
import requests
url = "https://example.com/robots.txt"
resp = requests.get(url, timeout=5)
if resp.status_code == 200:
print(resp.text[:500])
else:
print("没有robots.txt,谨慎行事")
最后说个反直觉的:有些网站看起来反爬很凶,其实只是纸老虎。比如某电商平台的商品列表页,你直接请求会返回验证码,但如果你把Accept-Language改成en-US,再随便填个Referer,它就不拦了。为什么?因为它的风控规则是给普通用户设计的,不是给爬虫设计的。你稍微伪装一下,它就当你是正常访客。当然,这种技巧我不建议用在商业网站上,毕竟人家写了Terms of Service。但如果是学术研究、个人兴趣,抓个几百条数据,问题不大。
说到底,可以爬取的网站分两类:一类是明确允许的,比如开放数据集、练手靶场;另一类是默认不禁止的,比如大部分新闻站、论坛、博客。前者你随便爬,后者你控制频率、遵守robots.txt、别给人家服务器添堵。至于那些需要登录、有严格反爬、明确写在用户协议里禁止爬取的——绕过去的方法当然有,但没必要。数据那么多,换个地方抓就是了。
(责任编辑:休闲)
-
凌晨三点,隔壁老周又发来截图——他在“XX棋牌”里连赢七把“牛牛”,账户余额跳到了五万八。我盯着那张花花绿绿的界面,第一反应不是羡慕,而是想起上个月他输光三个月工资时,在酒桌上红着眼眶骂平台“杀猪”。
...[详细]
-
接到派出所电话,说你网站有漏洞,第一反应别慌。这事我遇到过三次,两次是客户网站被扫描出SQL注入,一次是后台弱口令被爬虫盯上。电话里民警语气通常很直接:“你们网站有安全漏洞,赶紧处理,不然可能被通报。
...[详细]
-
去年秋天我在乌鲁木齐建材市场转了两天,想找一种能替代传统木工板做展柜背板的材料。朋友推荐了"渗透板"——新疆本地厂子用胡杨木纤维浸渍酚醛树脂压出来的板材。第一次听到这名字,我以为是某种防水涂料。 渗透
...[详细]
-
“天王盖地虎”——这七个字扔进任何一个中文互联网老网民的聊天框里,十有八九会弹回来一句“宝塔镇河妖”。可要是把它丢进Python黑洞网的暗号系统里,事情就没这么简单了。那地方不认文学梗,只认哈希值。
...[详细]
-
2022年3月,某国有大行华东地区一支行柜员周某,利用午休时间,将客户王某账户内47万元分三次转入自己控制的账户。操作并不高明——他只是在客户办理定期存款业务时,偷拍了对方身份证和银行卡照片,随后用自
...[详细]
-
打开任何一个电商培训网站的首页,你大概率会看到满屏的“0基础月入过万”“爆款打造秘籍”“限时特价6980”。这些词堆在一起,像极了火车站旁边举着“住宿”牌子的大妈——热情,但让人本能地想绕开。 我去年
...[详细]
-
义乌购这个网站,域名是www.yiwogo.com,在义乌国际商贸城逛一圈,你会发现每个摊位门头上都贴着它的二维码。这事挺有意思——一个线上平台,不靠广告轰炸,靠的是七万多个实体摊位一寸寸地推。 我最
...[详细]
-
上周帮同事修电脑,一台用了五年的联想ThinkPad,C盘只剩3个G。他问我能不能装个"解压快一点"的软件,说每次解个几G的素材包,进度条走得跟蜗牛爬似的。我打开他的程序列表一看,好家伙,装了三个解压
...[详细]
-
我在写毕业论文那会儿,导师甩给我一个网址,说“去这儿找文献”。我点开一看,全是英文,界面也朴素得不像话。但就是那个朴素的网站,让我在三天内找到了三十多篇核心论文,比我在中文数据库里折腾一个月还管用。那
...[详细]
-
OWASP ZAP 这工具,我装过不下十次。每次换电脑或者帮同事配环境,都得重新走一遍流程。它不像 Burp Suite 那样开箱即用,尤其在 Windows 上,Java 环境这关就能卡住不少人。直
...[详细]

怎么找一些能用的代理IP
公司网站制作
PHP命令注入攻击漏洞形成的主要原因
黑链指数包含什么商品
