Requests库可以获取网页源码
Get方法
import requests
html=requests.get("http://www.baidu.com") #获取到Response对象
html_bytes=html.content #获取到bytes型网页的源代码
html_str=html_bytes.decode()#获取到字符串型网页的源代码
print(html_str)import requests
html_str=requests.get("http://www.baidu.com").content.decode()
print(html_str)如果不是utf-8编码格式,就需要解码
html_str=requests.get("http://www.baidu.com").content.decode('GBK')get方法有很多参数
url:请求地址;params:要发送的查询字符串,可以为字典,列表,元组,字节;data:body 对象中要传递的参数,可以为字段,列表,元组,字节或者文件对象;json:JSON 序列化对象;headers:请求头,字典格式;cookies:传递 cookie,字段或CookieJar类型;files:最复杂的一个参数,一般出现在POST请求中,格式举例"name":文件对象或者{'name':文件对象},还可以在一个请求中发送多个文件,不过一般爬虫场景不会用到;auth:指定身份验证机制;timeout:服务器等待响应时间,在源码中检索到可以为元组类型,这个之前没有使用过,即(connect timeout, read timeout);allow_redirects:是否允许重定向;proxies:代理;verify:SSL 验证;stream:流式请求,主要对接流式 API;cert:证书。
响应对象
get方法返回的是一个响应对象,它有一些属性
ok:只要状态码status_code小于 400,都会返回 True;is_redirect:重定向属性;content:响应内容,字节类型;text:响应内容,Unicode 类型;status_code:响应状态码;url:响应的最终 URL 位置;encoding:当访问r.text时的编码;json():将响应结果序列化为 JSON;
POST方法
import requests
def get_response(url, data, headers=None):
result=requests.post(url=url,data=data,headers=headers).text
return result
if __name__ == '__main__':
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"
}
data = {
"key1": "value1",
"key2": "value2"
}
url = "http://httpbin.org/post"
html = get_response(url, data, headers)
print(html)
版权声明:本文为seanyang_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
