#cookie
##第一种方式
手动复制抓包的cookie,放在request对象的请求头里
headers = {
"User-Agent": UserAgent().chrome,
"cookie": " ... "
}
##第二种方式
cookiejar自动保存cookie
后台 根据你发送请求方式来判断 你是get请求(登录页面),如果是post请求(结果页面)
#登录网址
url = "***"
#登录参数
login_form_data ={
"user": "17703181473"
"password": "123456"
}
#参数要进行转译
form_data = urllib.parse.urlencode(form_data).encode("utf-8")
cookie_jar = cookiejar()
#定义添加cookie功能的处理器
cook_handler = urllib.request.HTTPCookieProcessor(cookiejar)
#根据处理器生成opener
opener = urllib.request.build_opener(cook_handler)
#带参数发送post请求
#添加请求头
headers = {
"User-Agent": Useragent().chrome
}
login_request = urllib.request.Request(url,headers=headers,data=login_form_data)
#如果登录成功,自动保存cookie
opener.open(login_request)
center_url="*****"
request = urllib.request.Request(center_url,headers=headers)
response = opener.open(center_url)
html = response.read().decode()
一个用户在不同地点(ip地址)在不同浏览器(UA)上不停登录,非人为登录
会封账号,所以需要多个帐号
urllib.request 提示错误 HTTPError UrlError
http 状态码:
200:访问成功
try:
reponse = urllib.request.urlopen(url)
except urllib.request.HTTPErroras error:
print(error.code)
if error.code ==404:
***
except urllib.request,URLError as error:
print(e)
##requests
简单易用、url自动转译、python2,3方法名一样
content:返回的是字节
#转码
response.content.decode('utf-8')
text:返回字符串 (unicode)
请求头:
response.reques.headers
响应头:
reponse.headers
响应状态码:
reponse.status_code
请求cookie
reponse.request._cookies
响应的cookie
response.cookies
发post请求
request。post(url,data={},json+)))
json()自动将字符串转化成
data.responses.json()