[关闭]
@buoge 2017-06-05T14:50:41.000000Z 字数 2447 阅读 1283

Python 爬虫

Python


start

https://github.com/dongweiming/daenerys
https://www.zhihu.com/question/20899988/answer/124261539

入门大法

https://zhuanlan.zhihu.com/p/21479334

运用请求伪造,浏览器伪造,浏览器自动化,图像处理,ip处理等方式进行反爬虫技术的通用化代码库

https://github.com/luyishisi/Anti-Anti-Spider

淘宝信息采集:
https://www.urlteam.org/2017/04/%E6%B7%98%E5%AE%9D%E5%95%86%E5%93%81%E4%BF%A1%E6%81%AF%E9%87%87%E9%9B%86%E5%99%A8%E4%BA%8C%EF%BC%8C%E5%BC%80%E6%94%BE%E6%BA%90%E7%A0%81%E5%8F%AF%E8%87%AA%E5%AE%9A%E4%B9%89%E5%85%B3%E9%94%AE%E8%AF%8D/

tensorflow中文资源汇总:
https://www.urlteam.org/2017/03/tensorflow-%E8%B5%84%E6%BA%90%E5%A4%A7%E5%85%A8-%E4%B8%AD%E6%96%87%E7%89%88/

众包识别二维码,分布式识别

刚才说获取大量免费代理ip的项目

https://github.com/awolfly9/IPProxyTool

python生成二维码

https://github.com/lepture/captcha

ECharts 生成图标

huey 一个基于redis的消息队列(peewee 作者写)

https://github.com/coleifer/huey

requests html解析

requests+lxml+xpath

xpath w3cschool

时光网项目

https://github.com/dongweiming/mtime

模拟登陆

https://xlzd.me/2016/01/12/python-crawler-08
https://zhuanlan.zhihu.com/p/25633789
https://juejin.im/post/58dce2248d6d8100613a4cfb

请求跳转

fiddler 参数和输入输出监听

app 手机数据格式规整

爬页面不是最好的方法,app api 是一个很不错的实现

tornado web 爬虫

https://github.com/tornadoweb/tornado/blob/master/demos/webspider/webspider.py

bloomfilter 网址去重(数学之美)

https://llimllib.github.io/bloomfilter-tutorial/

动态网页抓取很困难

传统 Ajax 已死,Fetch 永生

https://github.com/camsong/blog/issues/2

SlimIt

SlimIt is a JavaScript minifier written in Python. It compiles JavaScript into more compact code so that it downloads and runs faster.
SlimIt also provides a library that includes a JavaScript parser, lexer, pretty printer and a tree visitor.

实战设计一个爬虫

celery

http://www.bjhee.com/celery.html
http://funhacks.net/2016/12/13/celery/

asyncio,twisted,greenlet,多线程,错进程

断点续爬,摸清楚对方的id策略,或是时间戳

scrapy 框架

新手还是自己写的好,不要用框架,后期可以用框架提高效率
scrapy 爬取豆瓣网站
http://www.ituring.com.cn/article/114408

反爬虫策略

* 高密代理
* 隐藏域input,返回假数据或测试数据
* 检查robots.txt文件
* 蜜罐:隐藏A链接,被ip访问时就可以判定为不友好访问
* 绝大多数场景大公司爬虫ip是可以拿到,可以被判断出来
* 判断为爬虫后返回给你测试数据或假数据,循环数据,部分数据
* 封禁策略,手工封禁,
* 可能你的机器是肉机,所以封禁也不是永久的封禁,一段时间可以解封

多进程和多线程兼容写法

from multiprocessing import Pool
from multiprocessing.dummy import Pool
哪个速度快就用那个。从此以后我都尽量在写兼容的方式,这样在多线程/多进程之间切换非常方便。 
FROM https://zhuanlan.zhihu.com/p/22246193

分布式爬虫

https://github.com/istresearch/scrapy-cluster

扩展

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注