scrapy startproject 是启动项目的唯一可靠入口,它自动生成 scrapy.cfg、settings.py 和标准目录结构,手动创建易出错;用 scrapy genspider 生成爬虫骨架,注意 allowed_domains 是硬性过滤器,漏写或拼错会导致请求静默丢弃;parse 中优先用 response.css() 配合 .get()/.getall(),避免 attributeerror;用 response.follow() 处理翻页更稳妥;调试时用 -o 直接输出 json 验证提取逻辑,并检查 allowed_domains、download_delay 和 robotstxt_obey 等 settings 配置。

scrapy startproject 是启动项目的唯一可靠入口,别手写目录结构——它生成的 scrapy.cfg、settings.py 和默认中间件路径都依赖这个命令,手动建错一个层级(比如漏掉 spiders/__init__.py)会导致 scrapy crawl 找不到爬虫。
用 scrapy genspider 生成骨架,别从零写类
直接在项目根目录运行:scrapy genspider example example.com。这会自动创建 spiders/example.py,并预填 name、allowed_domains、start_urls 和空 parse 方法。重点在于:allowed_domains 是硬性过滤器,如果响应来自重定向或 iframe 的跨域地址,且没加进这个列表,请求会被静默丢弃——调试时发现“没进 parse”,第一反应该查这个字段是否漏写或拼错。
parse 里优先用 response.css(),别一上来就啃 XPath
CSS 选择器对新手更直观、容错更强:response.css('h1::text').get() 比 response.xpath('//h1/text()').get() 少写斜杠、不纠结节点层级。但要注意:.get() 返回单个值(None 安全),.getall() 返回列表;若目标元素可能不存在,直接链式调用 .get().strip() 会抛 AttributeError,得拆成两步或用 or '' 补缺。另外,response.follow() 是处理翻页的快捷方式,它自动解析相对 URL 并复用 headers/cookies,比手拼 scrapy.Request(url=...) 更稳。
SkillSub Pro - Python 题解与代码注释双功能技能功能概述SkillSub Pro - Python 题解与代码注释双功能技能是一项面向实际任务的技能,主要用于SkillSub Pro 是一个 Python 题解生成与代码注释的 双功能合体技能 ,专为学生、算法学习者和开发者设计;✅ 一个技能,两种用途 :;核心要点📝 题解模式 :输入题目/题号,自动生成完整 Python 题解(含详细注释、解题思路、复杂度分析);💬 注释模式 :输入 Python 代码,自动添加详细中。它将相关步骤、
本地调试别只看终端输出,加 -o 直接落地 JSON
运行爬虫时加 scrapy crawl example -o result.json,Scrapy 会把所有 yield 的字典自动序列化进文件,不用配 pipeline。这个操作绕过所有中间件和管道逻辑,是验证数据提取是否正确的最快路径。如果 result.json 为空,问题一定出在请求发不出去(DNS/网络)、被反爬拦截(状态码非 200)、或 CSS/XPath 表达式完全匹配失败——此时打开 response.text 或保存 response.body 到本地 HTML 文件,用浏览器开发者工具实测选择器,比猜错误原因高效得多。
allowed_domains 的隐式过滤、DOWNLOAD_DELAY 导致的请求节流、或者 ROBOTSTXT_OBEY=True(默认开启)让 Scrapy 主动遵守 robots.txt 而放弃抓取——这些都在 settings.py 里,但新手常忽略它们的存在。Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










