博客
指南、教程与 洞见
从 Shifter 团队了解住宅代理、网页抓取、数据采集策略及行业最佳实践。
数据抓取
数据抓取 4 分钟阅读
设计幂等爬虫:中断后重启而不重复
爬虫会崩溃。我们在抓取过程中将一个爬虫强制终止了十次:简单版本存储的行数多达4.3倍,幂等版本则恰好是500行。如何构建后者。
数据抓取
数据抓取 3 分钟阅读
抓取数据中的字符编码:检测字符集与修复乱码
我们在六个国家抓取了193个顶级主页。一个常见的Python默认设置使其中37个页面的文本变成乱码。如何像浏览器一样解码抓取的页面。
数据抓取
数据抓取 4 分钟阅读
保留原始响应:以WARC格式归档抓取页面以供回放
解析器会改进,提取器会失效,但未保存的页面无法重新解析。如何以WARC格式存储原始响应,附经过测试的代码和真实数据大小。
数据抓取
数据抓取 3 分钟阅读
找到页面背后的API:从JSON端点收集数据而非HTML
许多页面以JSON形式加载数据。如何找到承载数据的端点,为何它通常与页面的会话绑定,以及如何负责任地收集它。
数据抓取
数据抓取 3 分钟阅读
站点地图作为发现来源:无需爬取整站即可找到每个URL
XML站点地图列出了网站的URL,有时还包括它们的更改时间。如何正确读取它们,以及为什么不应在未加以核实的情况下信任lastmod。
数据抓取
数据抓取 3 分钟阅读
LLM提取与选择器对比:何时该让模型来读取页面
我们让一个大语言模型从18个实时新闻页面中提取字段,并将结果与页面自身的结构化数据进行对比评分。准确性、成本,以及何时该使用它。
数据抓取
数据抓取 2 分钟阅读
大规模变化检测:在不被噪声淹没的情况下对比网页差异
网页每次加载都会变化:广告、时间戳、令牌。如何通过归一化、字段级差异对比和 simhash 从噪声中辨别真实变化,附经过测试的代码。
数据抓取
数据抓取 4 分钟阅读
停止解析HTML:从JSON-LD和嵌入数据中提取结构化数据
大多数页面已经携带机器可读的数据。如何提取JSON-LD和嵌入式JSON,而不是使用脆弱的选择器,以及当数据不完整时该怎么做。
数据抓取
数据抓取 2 分钟阅读
构建目标健康评分:识别网站正在针对你
网站很少一步就封锁爬虫,而是先进行验证、软封锁和降速。如何将这些信号转化为每个网站的单一评分,并据此采取行动。