1~3天学习目录
- 爬虫基础
- urllib库基本使用
- requests库基本使用
爬虫基础知识
1.什么是爬虫
爬虫是一个模拟人类请求网站行为的程序,可以自动请求网页,并把数据爬取下来,然后用一定的规则提取有价值的数据。
2.爬虫的应用场景
a. 搜索引擎(百度等)
b. 数据分析
c. 抢票软件等
3.为什么要用python写爬虫
python语法优美、代码简洁、开发效率高、支持的模块多,相关的HTTP请求模块和HTML解析模块非常丰富,还有scrapy和scrapy_redis框架让我们开发爬虫变得异常简单。
4.HTTP协议介绍
HTTP协议:超文本传输协议,是一种发布和接收HTML页面的方法。服务器端口号是80端口。(美团网站)
HTTPS协议:是HTTP协议的加密版本,在HTTP下添加了SSL层。服务器端口号是443端口。(简书网站)
5.URL(统一资源定位器)详解
scheme://host:port/path/?query-string=xxx#anchor
a. scheme:代表的是访问的协议,一般为http,https,ftp等。
b. host:主机名,域名。
c. port:端口号,当你访问一个网站的时候,浏览器默认使用80端口。
d. path:查找路径。
e. query-string:查询字符串。
f. anchor:锚点,前端用来做页面定位的,现在一些前后端分离项目也用锚点来做导航。
补充:在浏览器中请求一个url时,浏览器会对这个url进行一个编码。
6.常见的请求method
a. get:一般情况下,只从服务器获取数据下来,并不会对服务器资源产生任何影响的时候使用。
b. post:向服务器发送数据、上传文件等,会对服务器资源产生影响的时候使用。
7.常见的请求头参数
在http协议中,向服务器发送一个请求,数据分为三部分:
- 把数据放在url中。
- 把数据放在body中(post请求)。
- 把数据放在head中。
网络爬虫中经常会用到的一些请求头参数: - User-Agent:浏览器名称。
- Referer:表明当前这个请求是从哪个url过来的。一般用来做反爬虫技术,如果不是从指定页面过来的,那么就不做相应的响应。
- Cookie:http协议是无状态的,也就是同一个人发送了两次请求,服务器没有能力知道这两个请求是否来自同一个人,因此这时候就用cookie来做标识。一般用来做登陆后才能访问的网站。
8.常见的响应状态码
- 200:请求正常,服务器正常返回数据。
- 301:永久重定向。比如在访问www.jingdong.com的时候会重定向到www.jd.com。
- 302:临时重定向。比如在访问一个需要登陆的页面时,若没有登陆,则会重定向到登陆页面。
- 404:请求的url不存在。
- 403:服务器拒绝访问,权限不够。
- 500:服务器内部错误,可能是服务器出bug了。