requests库

1.基本用法
import requests
rq=requests.get('https://www.baidu.com')
#rq=requests.post('http://httpbin.org/post')
#rq=requests.put('http://httpbin.org/put')
#rq=requests.delete('http://httpbin.org/delete')
#rq=requests.head('http://httpbin.org/get')
print(type(rq))
print (rq.status_code)
print(type(rq.text))
print(rq.text.encode('utf-8'))
print(rq.cookies)
  • GET请求

基本使用

import requests
data={
'name':'Tom',
'age':'120'
}
r=requests.get('http://httpbin.org/get',params=data)#该网站会根据用户的请求返回不同结果
print(r.text)

抓取网页

import requests
import re
headers={
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'

}
r=requests.get('https://zhihu.com/explore',headers=headers)
print(r.text[:1000])
pattern=re.compile('explore-feed.*?question_link.*?>(.*?)</a>',re.S)

titles=re.findall(pattern,r.text)
print(titles)

抓取二进制数据(github图标)

import requests
r=requests.get('https://github.com/favicon.ico')
#print(r.text)
#print(r.content)
with open('favicon.ico','wb') as f:
    f.write(r.content)
  • POST请求

    import requests
    
    data={
    
    'name':'Tom',
    'age':'12'
    }
    r=requests.post("http://httpbin.org/post",data=data)
    print(r.text)
  • 响应

    import requests
    headers={
    'User-Agent':'Mozilla/5.0'
    }
    r=requests.get('http://www.jianshu.com',headers=headers)
    print(type(r.status_code),r.status_code)
    print(type(r.headers),r.headers)
    print(type(r.cookies),r.cookies)
    
2.高级用法
  • 文件上传

    import requests
    files={'file':open('favicon.ico','rb')}
    r=requests.post("http://httpbin.org/post",files=files)
    print(r.text)
  • Cookies

    使用cookies维持登录状态

    import requests
    '''r=requests.get('http://www.baidu.com')
    print(r.cookies)
    for key,value in r.cookies.items(): #将cookies转化为元组进行遍历
        print(key+" = "+value)
    '''
    headers={
        'Cookie':'_zap=bface54d-d40e-4a91-a5a0-f9e714c77426; d_c0="ABCi0WXv5Q-PTjX-MOH69gxKYOZ2aSX7Syw=|1565908724"; _xsrf=r2XRKTVaACovZGHVhjD0tT9Qy7x0gwz5; Hm_lvt_98beee57fd2ef70ccdd5ca52b9740c49=1574087462,1574219897,1574318671,1574499180; tgw_l7_route=a37704a413efa26cf3f23813004f1a3b; capsion_ticket="2|1:0|10:1574512981|14:capsion_ticket|44:NTIxZjBhOTViMDQzNDc0YmFhZjVjMzZlZTk1YjEwM2Y=|8992301dded8f83da8c35879cce196a1ccfa61143c7f48f1edb65022768f3316"; z_c0="2|1:0|10:1574513011|4:z_c0|92:Mi4xbUVWbUNBQUFBQUFBRUtMUlplX2xEeWNBQUFDRUFsVk5jN1lBWGdDSjNHTUZ6QjVYU2ZrNTZiV1U0QXRDem1MS2d3|cbbb282d1e4255038b92361ad909dcf8e0781f4992840c6ee3aa47db3ff0d82b"; tst=r; Hm_lpvt_98beee57fd2ef70ccdd5ca52b9740c49=1574513012',
        'Host':'www.zhihu.com',
        'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
    }
    r=requests.get('https://www.zhihu.com',headers=headers)
    print(r.text)
  • 会话维持

    import requests
    
    '''
    requests.get('http://httpbin.org/cookies/set/number/123456')
    r=requests.get('http://httpbin.org/cookies')
    print(r.text)
    '''
    s=requests.session()
    s.get('http://httpbin.org/cookies/set/number1/123456')
    r=s.get('http://httpbin.org/cookies')
    print(r.text)
  • 代理设置

    import requests
    
    proxies={
    
        'http':'http://127.0.0.1:37279',
        'https':'http://127.0.0.1:37000'
    }
    r=requests.get("https://www.taobao.com",proxies=proxies)
    print(r.text)
  • Prepared Request

    将请求表示为数据结构

    from requests import Request,Session
    url='http://httpbin.org/post'
    data={
        'name':'Tom'
    }
    headers={
    
        'User-Agent':'Mozilla/5.0'
    }
    s=Session()
    req=Request('POST',url,data=data,headers=headers)
    prepare=s.prepare_request(req)
    r=s.send(prepare)
    print(r.text)

   转载规则


《requests库》 White Spider 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录