Python爬虫

第一阶段:Python基础(1周:每天2小时)

目标:掌握核心语法

核心知识点:

  • 基础语法:变量和数据类型、字符串操作、列表/元组/集合/字典
  • 流程控制:条件判断(if-elif-else)、循环(for/while)
  • 函数与模块:函数定义、参数、返回值、自定义模块与包导入
  • 文件操作:文件读写(open/with)
  • 异常处理:try-except-finally结构
  • 高级语法:列表推导式、字典推导式、生成器与迭代器、装饰器

第二阶段:静态爬虫(2周:每天2小时)

目标:通过requests库发送请求,用beautifulsoup和xpath解析页面,存储数据
1. http协议基础:

  • http请求方法与状态码(get、post、200、403、404、500)
  • url组成与请求头字段(user-agent、referer、cookie、accept)
  • F12分析network面板
  • robots.txt协议与urllib.robotparser解析
  1. 请求库requests
  • sesssion对象与会话保持(模拟登录状态)
  • 超时设置与重试机制
  • 代理配置(IP限制)
  • 异常捕获与处理
  1. BeautifulSoup4解析html
  • find()与find_all()的使用
  • css选择器(select方法)
  • 遍历解析树(.parent .children .next_sibling)
  1. xpath与lxml解析
  • xpaht语法核心://选取任意节点、/选取直接子节点、@获取属性、text()获取文本
  • css选择器与xpath的对比选择
  • chrome种xpath helper插件练习
  1. 数据存储
  • csv(csv模块)
  • json格式(json.dump/json.load)
  • excel存储(openpyxl/xlsxwriter)
  • sqlite数据库(sqlite3)--- sql语法学习
  1. 实战:
  • 豆瓣电影top250:爬取电影名称、评分、评价人数、影评,存储为csv
  • 链家/贝壳二手房房源:爬取房源标题、价格、面积、户型、所在区域,保存到sqlite
  • 新闻网站热点新闻:爬取某新闻网站首页的标题、发布时间、来源并输出json

第三阶段:进阶爬虫与反爬对抗(4周:每天2小时)

目标:掌握动态内容爬取、验证码识别与反爬策略破解
1. 动态渲染页面处理

  • Ajax数据抓取:network-xhr/fetch找到api,直接请求json接口
  • selenium自动化浏览器
  • playwright进阶框架
  1. 反爬策略突破
  • user-agent轮换:fake_useragent库随机生成不同user-agent
  • 代理ip池:免费代理(proxypool)
  • 请求频率控制:random.uniform(0.5,2)
  • cookie管理:requests.Session()维持会话
  • 验证码处理:
    • ocr识别:tesseract、ddddocr处理见到那数字字母验证码
    • 滑动验证码:边缘检测与轨迹模拟
    • 第三方打码平台接入(超级鹰、图鉴)
  • 字体反爬解析:TTF字体映射与数据还原
  1. 数据清洗与处理
  • 正则表达式(re.compile预编译、re.findall/re.search、贪婪与非贪婪匹配
  • 字符串清洗(去除换行符、空格、html标签)
  • 数据去重与校验
  1. 实战:先尽力找Ajax接口
  • 动态加载网站爬取:淘宝商品列表爬取,使用selenium或playwright
  • 验证码破解:模拟登录网站,用ddddocr自动识别验证码、requests.Session维持登录状态
  • 字体反爬实战:爬取某点评网站的店铺评分数据,破解其字体反爬机制

第四阶段:框架级爬虫与性能优化(3周:每天2小时)

目标:掌握scrapy(pyspider)框架的完整开发流程,理解异步与高并发技术
1. scrapy框架

  • spider核心方法:start_requests()、parse()、规则化爬取(crawlSpider)
  • item pipeline:数据清洗、去重、存入数据库
  • downloader middleware:代理池切换、随机user-agent
  • selectors:内置css/xpath提取器
  • 导出格式:FEEDS配置为json、csv、json lines
  1. 新特性
  2. 异步高并发
  • aiohttp vs requests:速度对比
  • asyncio事件循环与协程
  • 信号量控制并发数(semaphore)
  1. 多进程与多线程
  • 多线程(concurrent.futures.ThreadPoolExecutor)
  • 多进程(multiprocessing.Pool)
  • GIL限制分析:IO密集型 vs CPU密集型
  1. 实战:scrapy默认同步,中小型requests更快
  • 完整scrapy项目:爬取某电商的商品信息(标题、价格、销量、评价),使用item定义数据结构,pipeline将数据存入mysql
  • 异步高并发采集:用aiohttp+asyncio抓取1000个页面,对比requests同步方式效率差异
  • 多进程影视爬虫:用multiprocessing模块同时抓取多个电影网站的评分数据

第五阶段:高级爬虫与分布式架构

目标:掌握分布式爬虫设计、js逆向、移动端爬取、AI对抗能力,达到中级爬虫工程水平

第六阶段:工程化与项目实战