什么时爬虫?
网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序.
原则上来说,只要是浏览器(客户端)能做的事情,爬虫都能够做.*
爬虫的分类与流程
- 根据被爬网站的数量的不同,我们把爬虫分为:
- 通用爬虫 :通常指搜索引擎的爬虫
- 聚焦爬虫 :针对特定网站的爬虫
爬虫的流程
搜索引擎的局限性
- 通用搜索引擎所返回的网页里90%的内容无用。
- 图片、音频、视频多媒体的内容通用搜索引擎无能为力
- 不同用户搜索的目的不全相同,但是返回内容相同
robots协议
Robots协议: 网站通过Robots协议告诉搜索引擎哪些页面可以抓取, 那些页面不能抓取,但它仅仅是互联网中的一种约定.
http和https的概念
- HTTP
- 超文本传输协议
- 默认端口号:80
- HTTPS
- HTTP + SSL(安全套接字层)
- 默认端口号:443
浏览器发送HTTP请求的过程
浏览器会主动请求js,css等内容,js会修改页面的内容,js也可以重新发送请求,最后浏览器渲染出来的内容在elements中,其中包含css,图片,js,url地址对应的响应等。
但是在爬虫中,爬虫只会请求url地址,对应的拿到url地址对应的响应
浏览器渲染出来的页面和爬虫请求的页面并不一样
url的形式
- url的形式:scheme://host[:port#]/path/…/[?query-string][#anchor]
- scheme:协议(例如:http, https, ftp)
- host:服务器的IP地址或者域名
- port:服务器的端口(如果是走协议默认端口,80 or 443)
- path:访问资源的路径
- query-string:参数,发送给http服务器的数据
- anchor:锚(跳转到网页的指定锚点位置)
HTTP请求的形式
HTTP常见请求头
**1. Host (主机和端口号)
2. Connection (链接类型)
3. Upgrade-Insecure-Requests (升级为HTTPS请求)
4. User-Agent (浏览器名称)
5. Accept (传输文件类型)
6. Referer (页面跳转处)
7. Accept-Encoding(文件编解码格式)
8. Cookie (Cookie)
9. x-requested-with :XMLHttpRequest (是Ajax 异步请求)**
常见的请求方法
get or post
响应状态码(status code)
常见的状态码:
200:成功
302:临时转移至新的url
307:临时转移至新的url
404:not found
500:服务器内部错误
小结
1.爬虫分类:通用爬虫、聚焦爬虫
2.爬虫的流程:向起始url发送请求,并获取响应,对响应进行提取,如果提取url,则继续发送请求获取响应,如果提取数据,则将数据进行保存
3.robots协议:告诉搜索引擎哪些页面可以抓取, 那些页面不能抓取,但它仅仅是互联网中的一种约定.
4.http、https的概念和区别:http: 超本文传输协议 ,https: HTTP + SSL,即带有安全套接字层的超本文传输协议
5.浏览器发送HTTP请求的过程:浏览器先向地址栏中的url发起请求,并获取响应 在返回的响应内容(html)中,会带有css、js、图片等url地址,以及ajax代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应 浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css等内容会修改页面的内容,js也可以重新发送请求,获取响应 从获取第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的结果中添加内容或修改
6.url的请求形式:scheme://host[:port#]/path/…/[?query-string][#anchor]
7.常见的请求方法以及响应代码:get or post