python的request(2)

我们来跨请求保持一些 cookie:

s = requests.Session()

s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
r = s.get("http://httpbin.org/cookies")

print(r.text)
# '{"cookies": {"sessioncookie": "123456789"}}'

会话也可用来为请求方法提供缺省数据。这是通过为会话对象的属性提供数据来实现的:

import requests

s = requests.Session()
s.auth = ('user', 'pass')
s.headers.update({'x-test': 'true'})

# both 'x-test' and 'x-test2' are sent
r=s.get('http://httpbin.org/headers', headers={'x-test2': 'true'})
print(r.text)
  • urllib的使用
  • 先来看一下python2的使用方法

import urllib, urllib2

url = "http://www.baidu.com"

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36",
    "Host": "www.baidu.com"
}
data = {"k1": "v1", "k2": "v2"}
data = urllib.urlencode(data)
print(data)
response = urllib2.Request(url=url, headers=headers, data=data)
print()
  • python3的使用方法
import urllib
from urllib import parse
from urllib.request import Request


url = "http://www.baidu.com"

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36",
    "Host": "www.baidu.com"
}
data = {"k1": "v1", "k2": "v2"}
data = parse.urlencode(data)
print(data)
response = Request(url=url, headers=headers, data=data)
print()
  • 对于分块的编码请求,我们最好使用 Response.iter_content() 对其数据进行迭代。在理想情况下,你的 request 会设置 stream=True,这样你就可以通过调用 iter_content 并将分块大小参数设为 None,从而进行分块的迭代。如果你要设置分块的最大体积,你可以把分块大小参数设为任意整数。
import codecs

import requests
url = "https://img.alicdn.com/tfs/TB1MjYowCBYBeNjy0FeXXbnmFXa-520-280.jpg_q90_.webp"
res = requests.get(url=url, stream=True)

with codecs.open("hz.jpg", "wb") as f:
    for chunk in res.iter_content(10000):
        f.write(chunk)
  • 把文件下载到本地
import urllib
from urllib.request import Request
from urllib import request
url = "http://inews.gtimg.com/newsapp_match/0/3967692951/0"
request.urlretrieve(url, 'qq.jpg')
  • -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值