python爬虫学习第三课之基础库Requests的使用

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)

猜你喜欢

转载自blog.csdn.net/qq_40103460/article/details/89374008