1.安装 pip install Requests
2.请求
2.1使用get方法发出请求,获取响应,并是输出响应内容。
import requests
url = 'https://www.baidu.com/'
r = requests.get(url)
print(type(r))
print(r.status_code)
print(type(r.text))
print(r.text)
上面的例子中我们调用get()方法实现了urllib中相同的操作,得到了一个Response对象,同时也输出了Response的类型,内容,状态码等属性,同样我们也可以用post(),put()等方法获取不同类型的请求
传入参数,这里也可以传入额外的参数,如下例.这里的参数和urllib中的data不同,这里的参数最终还是整合到url中,,构成的依然是get()类型的请求
import requests
data = {'name':'germey', 'age':22}
r = requests.get('http://httpbin.org/get', params=data)
print(r.text)
如果网页返回的text是json的格式,也可以通过调用r.json()方法返回Json格式的字典,但一般对于普通的网页返回的都是HTML语言的源代码,而这些源码需要通过解析才能提取我们想要的信息。
2.2添加headers,和urllib.request一样,这里也可以通过headers参数传递额外的信息
有些网站如果不传递headers就无法请求,比如知乎页面
import requests
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://www.zhihu.com/explore", headers=headers)
print(r.text)
我们在headers加入了'User-Agent'信息,模拟浏览器访问,避免网站拦截
2.3post请求,和urllib一样,Requests可以实现post请求
import requests
data = {'name': 'germey', 'age': '22'}
r = requests.post("http://httpbin.org/post", data=data)
print(r.text)
注意,这里的data和get请求中的data不一样,get中是将参数传给params,这里是给到data参数,且请求方法为post()
2.4SSL验证
对于某些网站,直接访问需要证书,可以在使用verify参数控制跳过证书验证,但是会报警告
import requests
response = requests.get('https://www.12306.cn', verify=False)
print(response.status_code)
2.5代理设置
对于某些网站,频繁的访问会使IP被禁用,就需要使用代理避免这一现象
import requests
proxies = {
'http': 'http://10.10.1.10:3128',
'https': 'http://10.10.1.10:1080',
}
requests.get('https://www.taobao.com', proxies=proxies)