python爬虫系列-爬虫相关的基础知识
一 什么是爬虫
爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程。
二 爬虫的分类
@!!!
1.通用爬虫: @!!!简单来讲就是尽可能的;把互联网上的所有的网页下载下来,放到本地服务器里形成备分,在对这些网页做相关处理(提取关键字、去掉广告),最后提供一个用户检索接口。
@!!! 2.聚焦爬虫: @!!!聚焦爬虫是根据指定的需求抓取网络上指定的数据。例如:获取豆瓣上电影的名称和影评,而不是获取整张页面中所有的数据值。
三 反爬虫
门户网站通过相应的策略和技术手段,防止爬虫程序进行网站数据的爬取。
四 反反爬虫
爬虫程序通过相应的策略和技术手段,破解门户网站的反爬虫手段,从而爬取到相应的数据。
五 HTTP协议
1 概念
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
2 特点
HTTP基于TCP/IP协议:http协议是基于TCP/IP协议之上的应用层协议。
HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
HTTP是基于请求-响应模式:HTTP协议规定,请求从客户端发出,最后服务器端响应该请求并 返回。
HTTP是无状态保存:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
3 HTTP之URL
HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息。
比如这个URL:http://www.huolg.net:8080/news/index.asp?boardID=5&ID=24618&page=1#name
- 协议部分:该URL的协议部分为“http:”;
- 域名部分:该URL的域名部分为“www.huolg.net”;
- 端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符;
- 虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”
- 文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名。
- 锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分。
- 参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。
4.HTTP之Request
常见的请求头(报文体):
- accept:浏览器通过这个头告诉服务器,他支持的数据类;
- Accept-Charset:浏览器通过这个告诉服务器,他锁支持的字符集;
- Accept-Encoding:浏览器通过这个告诉服务器,他支持的压缩格式;
- Accept-Language:浏览器通过这个告诉服务器,他的预言环境;
- Host:浏览器通过这个告诉服务器,像访问那台主机;
- If-Modified-Since:浏览器通过这个头告诉服务器,缓存数据的时间;
- Referer:浏览器通过这个头告诉服务器,客户机是从哪个页面来的(防盗链);
- Connection:浏览器通过这个头告诉服务器,请求完后是断开连接还是维持连接;
- X-Requested-With:XMLHttpResquest 代表通过ajax方式进行访问的;
- User-Agent:请求载体的身份标识。
5 HTTP之Response
常见的响应头信息:
- Location:服务器通过这个头,来告诉浏览器跳转到哪里;
- Server:服务器通过这个头,告诉路浏览器服务器的型号;
- Content-Encoding:服务器通过这个头,告诉浏览器数据压缩的格式;
- Content-Length:服务器通过这个头,告诉浏览器会送数据的长度;
- Content-Language:服务器通过这个头,告诉浏览器语言环境;
- Content-Type:服务器通过这个头,告诉浏览器回送数据的类型;
- Refresh:服务器通过这个头,告诉浏览器定时刷新;
- Content-Disposition:服务器通过这个头,告诉浏览器以下载方式打开数据;
- Transfer-Encoding:服务器通过这个头,告诉浏览器数据是以块方式回送的;
- Expires:-1 控制浏览器不要缓存;
- Cache-Control:no-cache
- Pragma: no-cache
响应状态码
六 HTTPS协议
HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议,HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。
七 爬虫基本流程
- 扫码关注“火龙果编程”公众号,早日成为编程大神
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。