基本的区别是获得的response
1.发送get请求,例如:
r = requests.get('http://httpbin.org/ip')
2.发送post请求,例如:
r = requests.post('http://httpbin.org/ip')
3.得到的响应内容(就是指get发送以后的请求),响应的内容包含响应行、响应报头、响应正文。
响应正文:r.content(通用版),可以自动转出成取文本用.text,取图片等二进制的文件用.content,.text返回的是unicode型数据,.content返回的是bytes类型的数据,也就是二进制的数据。
url = "http://www.baidu.com/"
r = requests.get(url, timeout=10)
print(r.content)
响应头部:r.header
url = "http://www.baidu.com/"
r = requests.get(url, timeout=10)
print(r.headers)
如果要反爬虫,一个方法时伪装头部
Requests支持定制http请求的头部。为此,我们只需要构造一个字典,然后传给requests.get()的headers参数即可。
url = 'http://httpbin.org/headers'
headers = {'user-agent': 'my-app/0.0.1'}
r = requests.get(url, headers=headers)
print (r.text)
响应状态码
url = "http://www.baidu.com/"
r = requests.get(url, timeout=10)
print(r.status_code)
以后再补充
r = requests.post('http://httpbin.org/post', data={'name': 'leo'})
具体参考https://blog.csdn.net/qq_29027865/article/details/84554748
GET 向指定url发送请求,返回网页的html代码
POST 向指定url提交数据,由服务端进行处理并返回结果。
请求和响应过程
1 客户端(浏览器)解析URL地址,将域名转换成IP
2 客户端(浏览器)与服务端(服务器)建立TCP/IP连接
3 客户端(浏览器)发送http请求
请求报文包括请求行(请求方式、URL、协议版本)、
请求头部、空行和请求数据
4 服务端(服务器)响应请求返回数据
响应报文包括状态行、消息报头、空行和响应正文
5 服务端(服务器)释放TCP连接
6 客户端(浏览器)解析返回的数据并显示
1.发送get请求
urllib.request.urlopen()
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
其中url: 需要打开的网址 data:Post提交的数据 timeout:设置网站的访问超时时间
response=urllib.request.urlopen('http://httpbin.org/get',timeout=0.1)
响应正文:read() , readline() ,readlines() , fileno() , close() :对HTTPResponse类型数据进行操作。
import requests
from urllib import request
from urllib.request import urlopen
url = "http://www.baidu.com/"
r = request.urlopen(url, timeout=10)
print(r.read())
也可以编码r.read().decode("UTF_8")
响应头部:info()
import requests
from urllib import request
from urllib.request import urlopen
url = "http://www.baidu.com/"
r = request.urlopen(url, timeout=10)
print(r.info())
响应状态码:getcode()
import requests
from urllib import request
from urllib.request import urlopen
url = "http://www.baidu.com/"
r = request.urlopen(url, timeout=10)
print(r.getcode())