request模块
get方法
params = {"key1":"hello","key2":"world"}
url = "http://www.jd.com:
r = requests.get(url=url,params=params)
print(r.url)
post方法
params = {"key1":"hello","key2":"world"}
url = "http://www.jd.com:
r = requests.get(url=url,data=params)
print(r.url)
print(r.text)
print(r.content)
print(r.encoding)
print(r.cookies)
print(r.headers)
print(r.status_code)
requests模块的会话对象
创建一个会话
s = requests.session()
python2中
S = requests.Session()
爬虫首先要做的就是创建会话,所有一次会话的信息保存在s中,只需要对是进行操作就可以。get、post方法默认会创建一个会话。
s.get(url=url,param=param)
cookie的常用属性
Domain 域
Path 路径
Expires 过期时间
name 对应key
value key对应的value
cookie中的domain代表的是cookie的所在域,默认情况下就是静秋的域名。在留来其中也是按照domain来组织cookie的。我们可以在响应中设置cookie的domain为其他域,但是浏览器并不会去保存这些domain为其他域的cookie。
cookie中的path能够进一步的控制cookie的访问,当path=/, 当前域的所有请求都可以访问到这个cookie。如果path问其他值,比如path=/test,那么只有test下面的请求可以访问到这个cookie。
import requests
url = "http://www.hao123.com"
s = requests.session()
r = s.get(url=url)
print(r.cookies)
for cook in r.cookies:
print(cook.name)
print(cook.value)
print(cook.domain)
print(cook.path)
print(cook.expires)
import requests
url = "http://2017.ip138.com/ic.asp"
proxies = {"http":"http://122.225.17.123:8080"}
r = requests.get(url=url,proxies=proxies)
r.encoding = "gb2312"
print(r.text)
结果
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<title> 您的IP地址 </title>
</head>
<body style="margin:0px"><center>您的IP是:[122.225.17.123] 来自:浙江省嘉兴市 电信</center></body></html>
requests提供的所有接口,在数据传输的时候,都可以以key:value的形式进行传输,这个也是推荐使用requests的原因