
书: https://pan.baidu.com/s/1o53U8DJYBlzPKes4X47C8Q?pwd=ymj8
笔记如下:
- “爬虫的本质是‘模拟浏览器行为’,
requests.get()
发送HTTP请求,response.text
获取HTML源码。” - “BeautifulSoup的
find_all()
配合CSS选择器(如div.class > a
)精准提取页面元素。” - “动态渲染页面需用Selenium的
WebDriver
,driver.execute_script()
执行JS代码。” - “Scrapy框架的
Spider
类定义爬取逻辑,Item Pipeline
处理数据存储。” - “反爬突破:
headers
模拟User-Agent,proxies
切换IP,cookies
维持会话。” - “
re.compile(r'pattern')
预编译正则表达式,提升匹配效率。” - “Ajax数据抓取:分析XHR请求,
json.loads()
解析API返回的JSON数据。” - “增量爬虫:
md5(url)
生成唯一标识,数据库去重避免重复采集。” - “
robots.txt
是爬虫伦理底线,但无法律约束力,需谨慎遵守。” - “分布式爬虫用
Scrapy-Redis
实现URL队列共享,Redis
作调度中心。” - “验证码识别:
Pillow
预处理图片,Tesseract-OCR
或付费打码平台破解。” - “
time.sleep(random.uniform(1,3))
随机延迟,降低被封风险。” - “数据存储四选一:
csv
(轻量)、MySQL
(关系型)、MongoDB
(文档)、Redis
(缓存)。” - “
mitmproxy
中间人抓包,分析App端加密API请求。” - “Scrapy的
Downloader Middleware
可自定义代理池和请求重试机制。” - “
PyQuery
语法类似jQuery,doc('a').attr('href')
快速获取属性。” - “
aiohttp
+asyncio
实现异步爬虫,吞吐量比同步请求高10倍。” - “数据清洗:
pandas
处理缺失值,jieba
分词中文文本。” - “法律风险:避免爬取个人信息(如手机号)和版权内容(如影视资源)。”
- “爬虫工程师的自我修养:‘像用户一样思考,像开发者一样分析’。”