1.爬虫概念
什么是爬虫?
- 程序员:写程序,然后去互联网上抓取数据的过程
- 互联网:网,有好多的 a 链接组成的,网的节点就是每一个 a 链接,url (统一资源定位符)
哪些语言可以实现爬虫?
- php,可以做,号称世界上最优美的语言,多进程、多线程支持的不好
- java,也可以做爬虫,人家做的很好,最主要的竞争对手,代码臃肿,重构成本大
- c、c++,是你能力的体现,不是良好的选择
- python,世界上最美丽的语言,语法简单、代码优美,学习成本低,支持的模块多,非常强大的框架 scrapy
通用爬虫
- 通用爬虫:百度、360、搜狐、谷歌、必应(搜索引擎)
- 原理:
- 抓取网页、采集数据、数据处理、提供检索服务 - 爬虫:baiduspider
- 通用爬虫如何抓取新网站?
- 通过用户主动提交 url
- 设置友情链接
- 百度会和 DNS 服务商合作,抓取新网站
网站的检索排名:
- 竞价排名
- 根据 pagerank 值、访问量、点击量(SEO 转化率提升)
robots.txt(robots 协议):
- 哪些可以爬取网站,哪些不可以爬取,可以爬取哪些内容 淘宝爬虫协议
- 如果不想让百度爬取,可以编写 robots.txt ,这个协议是口头上的协议
- 自己写的爬虫程序不需要遵从
聚焦爬虫
- 根据特定的需求,抓取指定的数据,爬取豆瓣上自己想要的内容
- 思路?
- 代替浏览器上网
- 网页的特点:
- 网页都有自己唯一的 url
- 网页内容都是 html 结构的
- 使用的都是 http、https 协议
- 爬取步骤:
- 给一个 url
- 写程序,模拟浏览器访问 url
- 解析内容,提取数据
环境:
- windows 环境、linux 环境
- python3.6 64位的
- sublime pycharm
课程内容:
- 使用到的库:urllib requests bs4 …
- 解析网页内容涉及到的知识:
- 正则表达式、bs4、xpath、jsonpath
- 涉及到动态 html
- selenium+phantomjs、chromeheadless
- scrapy 框架
- 高性能框架使用
- scrapy-redis 组件
- redis,分布式爬虫
- 涉及到爬虫-反爬虫-反反爬虫的一些内容
- UA(浏览器的一个类型)、代理、验证码、动态页面等