索引
开源项目
如何通过 Scrapyd + ScrapydWeb 简单高效地部署和监控分布式爬虫项目
LogParser v0.8.0 发布:一个用于定期增量式解析 Scrapy 爬虫日志的 Python 库,配合 ScrapydWeb 使用可实现爬虫进度可视化
时隔五年,Scrapyd 终于原生支持 basic auth
JS 分析
***** [JS 分析] 快速定位 JS 代码,还原被混淆压缩的 JS 代码
Scrapy
Scrapy 隐含 bug: 强制关闭爬虫后从 requests.queue 读取的已保存 request 数量可能有误
Scrapy 扩展中间件: 针对特定响应状态码,使用代理重新请求
Scrapy 扩展中间件: 同步/异步提交批量 item 到 MySQL
scrapy相关 通过设置 FEED_EXPORT_ENCODING 解决 unicode 中文写入json文件出现`\uXXXX`
Django
Scrapy_redis
scrapy_redis 相关: 将 jobdir 保存的爬虫进度转移到 Redis
scrapy_redis 相关: 多线程更新 score/request.priority
Scrapyd
Scrapyd 改进第一步: Web Interface 添加 charset=UTF-8, 避免查看 log 出现中文乱码
Scrapyd 改进第二步: Web Interface 添加 STOP 和 START 超链接, 一键调用 Scrapyd API
代理/登录/验证码
python之cookie, cookiejar 模拟登录绕过验证
网页解析
lxml.etree.HTML(text) 解析HTML文档
编码
requests之headers 'Content-Type': 'text/html'误判encoding为'ISO-8859-1'导致中文text解码错误
阅读:
- Unicode In Python, Completely Demystified
- Decode early, Unicode everywhere, encode late
- 立即停止使用 setdefaultencoding('utf-8'), 以及为什么
- 也谈 Python 的中文编码处理
- PYTHON-进阶-编码处理小结
动态加载
scrapy相关:splash安装 A javascript rendering service 渲染
selenium执行JavaScript语句:控制滚动条 聚焦元素 改变下拉选项
python模拟鼠标键盘操作 GhostMouse tinytask 调用外部脚本或程序 autopy右键另存为
python 通过js控制滚动条拉取全文 通过psutil获取pid窗口句柄,通过win32gui使程序窗口前置 通过autopy实现右键菜单和另存为操作
数据提取
HTML 中的预留字符(如标签的小于号 < )必须被替换为字符实体( < )。 不间断空格( )
HTML转义字符&npsp;表示non-breaking space,unicode编码为u'\xa0',超出gbk编码范围?
python之使用 wkhtmltopdf 和 pdfkit 批量加载html生成pdf,适用于博客备份和官网文档打包
数据库
python之MySQL MySQLdb 推荐使用姿势,解决中文乱码