python3 requests模块用法实例

python3的网络模块相对python2真的方便了很多,requests一个包就包含了python2的多个包,这从实例说明requests用法,作为复习和以后的参考。 requests并不是python默认安装的,没安装使用pip install requests安装便是,下面是requests使模块使用实例。

GET获取网页内容

import requests

r = requests.get("https://www.bobobk.com/vip_parse")
print("状态码:
%d" % r.status_code)  #状态码
print(r.headers[content-type]) #头部编码
print("网页内容:
%s" % r.content.decode("utf8")[:100])#content返回原始数据为byte类型,这里utf8解码输出
print("网页内容:
%s" % r.text[:100])#text返回str类型

如果带有参数的url呢,也很简单,requests为了方便,不需要你写很长的url到get里面,使用params={url=“”,id=“1”}这种形式即可 当然你非要写很长的也是可以的,完全没问题。

POST数据

post数据也非常简单,data参数,字典里面写上需要post的数据

import requests
r = requests.post(https://httpbin.org/post, data = {
          
   key:value})

添加数据头

有时网站可能限制了user agent(UA),你直接用默认参数使用的UA是包含了requests的,所以如果修改头的话就是

import requests
headers = {
          
   user-agent: Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10}
url="https://httpbin.org/get"
r = requests.get(url, headers=headers,timeout=5)
#或者使用timeout设置延时

基础验证

有的时候如果网站使用了基础验证的话,只需要添加auth参数即可

r = requests.get(url, headers=headers,timeout=5,auth=HTTPBasicAuth(username, password))
#由于httpbasicauth比较普遍,python允许不谢验证方法,如下
r = requests.get(url, headers=headers,timeout=5,auth=(username, password))

GET下载文件

r = requests.get(https://www.bobobk.com/wp-content/uploads/2018/12/wizard.webp)
f = open(download.webp, wb)
for chunk in r.iter_content(chunk_size=512 * 1024): 
    if chunk: 
            f.write(chunk)
    f.close()

此处使用的方法使用与大文件的下载

post文件

当然也是可以直接post文件的,添加参数files,用法

url = https://httpbin.org/post
files = {
          
   file: (myfile.xls, open(myfile.xls, rb), application/vnd.ms-excel, {
          
   Expires: 0})}
r = requests.post(url, files=files)

使用cookie

直接指定cookie参数即可

url = https://httpbin.org/cookies
r = requests.get(url, cookies={
          
   "username":"bobobk"})
#如果是网页返回包含cookie,也可以方便的获取到cookie
r.cookies
经验分享 程序员 微信小程序 职场和发展