主要有GET、POST两种类型,另外还有HEAD、PUT、DELETE、OPTIONS等
一般使用chrome浏览器的使用 使用f12 打开开发者模式
Network 中获取的请求 :
- 通常情况下第一个请求是一个 document类型的文档请求(里面包含整个页面的源代码)
也可以发现 网页在加载的过程中并不是一次性加载完成的,而是先依次请求最终显示一个完整的渲染后的页面。
首先得到document 文档,然后根据文档中的链接进行依次请求下载。
当作一个请求的配置信息
包含请求时的头部信息。(Request Headers) 如 User-Agent(指定浏览器请求头)、Host、Cookies(保持登录会话)
如果是GET请求的时候,我们并不需要请求体
而在POST请求的时候,请求体中包含了 类似于表单的key-value
status code
200 代表成功
301 代表页面跳转
404 代表页面丢失
502 代表服务器错误
如 内容类型、 内容长度、 服务器信息、 Cookie等信息
最主要的内容,包含了请求资源的内容,如网页HTML 、图片二进制数据等
import requests
response = requests.get('http://www.baidu.com') # 完成了一个HTTp请求的发送
print(response.text) # 请求内容(源代码)
# 请求头
print(response.headers)
{'Server': 'bfe/1.0.8.18', 'Date': 'Mon, 12 Mar 2018 09:07:21 GMT', 'Content-Type': 'text/html', 'Last-Modified': 'Mon, 23 Jan 2017 13:27:36 GMT', 'Transfer-Encoding': 'chunked', 'Connection': 'Keep-Alive', 'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Pragma': 'no-cache', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Content-Encoding': 'gzip'}
# 状态码
print(response.status_code)
200
# 添加请求头
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36'}
response = requests.get('http://www.baidu.com', headers=headers)
print(response.status_code)
200
许多网页的内容是通过ajax和js 动态加载进来的,
而我们通过浏览器得到的源代码是 渲染加载后的内容,而使用python库请求的内容是最原始的html,并没有被渲染
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.taobao.com')
具有结构化表结构的形式存储
1. MySQL
2. Oracle
3. SQL Server
Key-Value形式存储
1. MongoDB
2. Redis