1、爬虫的基本知识:
1. 什么是爬虫php
- 爬虫的英文翻译为spider或者crawder,意为蜘蛛或者爬行者,从字面意思咱们能够体会到:爬虫就是把本身当作蜘蛛或者爬行者,沿着既定路线,爬到指定节点,猎取食物获取目标。在这里咱们的蜘蛛网即互联网,咱们爬取的方法即为路径,咱们所要获取的数据即为食物或目标。
2. 爬虫的核心html
- 爬取网页
- 解析数据
- 难点:与反爬虫博弈(反爬虫: 资源的全部者,想要保护资源,避免被第三方爬虫程序批量的把资源下载下去。想办法区分爬虫程序和正常的用户。)
3. 爬虫的语言java
- php:虽然是世界上最好的语言,可是天生不是干爬虫的命,PHP对多线程、异步支持不足,并发不足。爬虫是工具性程序,对速度和效率要求较高。
- java:生态圈完善,是Python最大对手。可是Java自己很笨重,代码量大。重构成本比较高,任何修改都会致使大量代码的变更。最要命的是爬虫须要常常修改部分代码。
- CC++:运行效率和性能几乎最强,可是学习成本很是高,代码成型较慢,能用C/C++写爬虫,说明能力很强,可是不是最正确的选择
- Python:语法优美、代码简介、开发效率高、三方模块多,调用其余接口也方便。有强大的爬虫Scrapy,以及成熟高效的scrapy-redis分布式策略。
4. 爬虫分类python
- 通用爬虫
也就是百度、Google、360、搜狐、firefox等搜索引擎。特色是爬取网站全部内容、但不能根据客户需求给出特定内容。在这里,各家浏览器根据其pagerank分进行网站搜索的排名,同时还有竞价排名。
- 聚焦爬虫
就是如今咱们这些爬虫程序员所进行的工做,就是根据客户的需求,爬取指定网站的特定内容。
2、如何学习爬虫
1. 首先要理解什么是http/https协议程序员
2. python基础知识正则表达式
- urllib.request
- urllib.parse
- 正则表达式等等基础知识。
3. 开发工具redis
4. 抓包工具chrome
- chrome浏览器的开发者模式,在这里能够检查网页的各类元素。
- fiddler:本来是为测试来测试网站的,后来成了爬虫工程师最喜好的工具。这是一款开源软件,能够直接去官网下载安装https://www.telerik.com/downl...
- postman:能够根据请求头信息生成简单的网页爬取代码,界面相对于fiddler也要美观
- motimproxy
3、代码实现简单的爬虫实例
-
python爬虫有多简单,下面我一行代码爬取百度首页,如同在浏览器输入网址同样简单windows
import urllib.request
urllib.request.urlretrieve('http://www.baidu.com/', 'baidu.html')
- 上面的代码只能简单抓取网页,一旦遇到须要请求头的反爬虫时就不能发挥做用了,因此通常经常使用的爬虫代码以下:
import urllib.request
url = 'http://www.baidu.com/'
request = urllib.request.Request(url)
response = urllib.request.urlopen(request)
with open('baidu.html', 'wb') as f:
f.write(response.read())
-
请求头反反爬虫:浏览器
import urllib.request
#指定url
url = 'https://www.qiushibaike.com/'
#定义请求头对象
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36'
}
#获取网页信息
request = urllib.request.Request(url, headers=headers)
response = urllib.request.urlopen(request)
with open('xiushi.html','wb') as f:
f.write(response.read())
今天先写到这儿了,我争取作到每日分享,与你们一块儿学习,一块儿进步,为了美好的明天,艰苦奋斗。
————你与别人的差距在加班的时间。