爬虫是什么呢?

网络爬虫也可称作网络蜘蛛、蚂蚁、自动索引程序,或称为网络疾走。即请求网站并提取数据的自动化程序。
爬虫的基本流程

大体步骤:
——1. 发起请求
——2. 获取响应内容
——3. 解析内容
——4. 保存数据
对于请求与响应的过程和方式方法、以及怎样抓取数据、解析数据,保存数据将是进一步要学习的内容。
HTTP 协议
超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。

.......
......
推荐阅读《图解HTTP》
GET 与 POST
- GET 是从服务器上获取数据
- POST 是向服务器传送数据
- GET 通过构造 url 中的参数来实现功能
- POST 将数据放在header提交数据
常用的 HTTP 方法
方法 | 描述 |
---|---|
GET | 请求获取URL位置的资源,返回主体 |
HEAD | 获取URL位置的资源的头部信息 |
POST | 请求向URL位置的资源后附加新的数据 |
PUT | 请求向URL位置存储一个资源,覆盖原URL位置的资源 |
PATCH | 请求局部更新URL位置的资源,即改变该处资源的部分内容 |
DELETE | 请求删除URL位置存储的资源 |
TRACE | 回显服务器收到的请求 |
最常用的响应状态码
200 (OK): 找到了该资源,并且一切正常。
301(Moved Permanently): 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
302 (Found): 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。
304 (NOT MODIFIED): 该资源在上次请求之后没有任何修改。这通常用于浏览器的缓存机制。
400 (Bad Request): 请求出现语法错误。
403 (FORBIDDEN): 客户端未能获得授权。这通常是在401之后输入了不正确的用户名或密码。
404 (NOT FOUND): 在指定的位置不存在所申请的资源。
500 (Internal Server Error): 服务器遇到了意料不到的情况,不能完成客户的请求
503 (Service Unavailable): 服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头
HTML
浏览器读取HTML文件,并将其作为网页显示。浏览器并不是直接显示的HTML标签,但可以使用标签来决定如何展现HTML页面的内容给用户。
HTML 菜鸟教程: http://www.runoob.com/html/html-intro.html
W3cschool 的 HTML 教程:http://www.w3school.com.cn/html/html_jianjie.asp
Requests
打开 cmd 安装:pip install requests
检查:打开 Python 交互模式,输入import requests
回车,不报错则安装完成。
关于requests的使用可以查看官方文档:
英文:http://docs.python-requests.org/en/master/
中文:http://cn.python-requests.org/zh_CN/latest/user/quickstart.html
Requests库的主要方法:

Requests库的Response对象的属性:

打印输出简书首页源代码
import requests # 导入模块
response = requests.get("http://www.jianshu.com/") # 获取简书首页源代码
print(response.status_code) # 打印响应状态码
print(type(response)) # 打印类型
print(response.text) # 打印响应内容
网友评论