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解析
- 请求库requests
- sesssion对象与会话保持(模拟登录状态)
- 超时设置与重试机制
- 代理配置(IP限制)
- 异常捕获与处理
- BeautifulSoup4解析html
- find()与find_all()的使用
- css选择器(select方法)
- 遍历解析树(.parent .children .next_sibling)
- xpath与lxml解析
- xpaht语法核心://选取任意节点、/选取直接子节点、@获取属性、text()获取文本
- css选择器与xpath的对比选择
- chrome种xpath helper插件练习
- 数据存储
- csv(csv模块)
- json格式(json.dump/json.load)
- excel存储(openpyxl/xlsxwriter)
- sqlite数据库(sqlite3)--- sql语法学习
- 实战:
- 豆瓣电影top250:爬取电影名称、评分、评价人数、影评,存储为csv
- 链家/贝壳二手房房源:爬取房源标题、价格、面积、户型、所在区域,保存到sqlite
- 新闻网站热点新闻:爬取某新闻网站首页的标题、发布时间、来源并输出json
第三阶段:进阶爬虫与反爬对抗(4周:每天2小时)
目标:掌握动态内容爬取、验证码识别与反爬策略破解
1. 动态渲染页面处理
- Ajax数据抓取:network-xhr/fetch找到api,直接请求json接口
- selenium自动化浏览器
- playwright进阶框架
- 反爬策略突破
- user-agent轮换:fake_useragent库随机生成不同user-agent
- 代理ip池:免费代理(proxypool)
- 请求频率控制:random.uniform(0.5,2)
- cookie管理:requests.Session()维持会话
- 验证码处理:
- ocr识别:tesseract、ddddocr处理见到那数字字母验证码
- 滑动验证码:边缘检测与轨迹模拟
- 第三方打码平台接入(超级鹰、图鉴)
- 字体反爬解析:TTF字体映射与数据还原
- 数据清洗与处理
- 正则表达式(re.compile预编译、re.findall/re.search、贪婪与非贪婪匹配
- 字符串清洗(去除换行符、空格、html标签)
- 数据去重与校验
- 实战:先尽力找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
- 新特性
- 异步高并发
- aiohttp vs requests:速度对比
- asyncio事件循环与协程
- 信号量控制并发数(semaphore)
- 多进程与多线程
- 多线程(concurrent.futures.ThreadPoolExecutor)
- 多进程(multiprocessing.Pool)
- GIL限制分析:IO密集型 vs CPU密集型
- 实战:scrapy默认同步,中小型requests更快
- 完整scrapy项目:爬取某电商的商品信息(标题、价格、销量、评价),使用item定义数据结构,pipeline将数据存入mysql
- 异步高并发采集:用aiohttp+asyncio抓取1000个页面,对比requests同步方式效率差异
- 多进程影视爬虫:用multiprocessing模块同时抓取多个电影网站的评分数据
第五阶段:高级爬虫与分布式架构
目标:掌握分布式爬虫设计、js逆向、移动端爬取、AI对抗能力,达到中级爬虫工程水平
评论区
0 条暂时还没有评论,欢迎来抢沙发。