爬虫目的: 就是根据规则抓取指定的数据,一般是大量数据
可以做爬虫的语言:
- PHP:多进程多线程处理不好
- Java:没毛病,就是代码复杂点,修改费劲,重构成本大(为突出PY强行黑)
- C,C++:这都是NB人做的,个人能力展现,对于高学习/经验成本来讲,不算是良好选择
- Python:语法简单,代码可读性高,学习成本低,三方模块多,强大框架Scrapy
通用爬虫和聚焦爬虫:
通用爬虫: 百度,360,bing,yisou,sougou,google
- 整个网站都爬,抓取网页,采集数据,数据处理,提供信息检索
- 如何获取新网站:
主动提交(及时)或被动A连接连锁(不及时);
设置友情链接(别人网站打广告,直接连接到自己的网页来);
与DNS服务商合作:拿到DNS注册信息爬取的更广。 - 搜索引擎检索排名:
竞价排名:花钱(百度魏则西事件,后续标注广告,以区分官网)
pagerank:访问量,点击量,靠声望。 - robots.txt:限制爬虫的协议,仅仅是口头协议,个人可以忽略(道德层面),大公司通用爬虫必须遵守。
聚焦爬虫: 根据需求(通过正则匹配)抓取指定数据
爬虫工作过程: 给个URL,写PY程序模拟浏览器访问URL,解析内容,提取数据,(保存到数据库或者看到数据后丢失结果后续再说)
学习内容、基础知识、准备工作:
- 库:
PY3:urllib.request,urllib.parse
PY2:urllib,urllib2
其他:bs4(beautiful soup 4:鲜美汤4) - 解析内容:
正则解析;
bs4;
xpath;
jsonpath。 - 动态html:selenium+phantomjs(过气?) chromeheadless
- 框架:Scrapy高性能框架
- Scrapy+Redis组件:分布式爬虫
- 爬虫-反爬虫-反反爬虫:UA,Proxy,验证码,动态页面等。