urllib模块 | 调用的方法 | 说明 |
---|---|---|
urllib.request | urlopen(url) | 请求url,并返回请求url所有的内容 |
urlretrieve(url,path) | 请求url,并将url反馈的内容保存到path路径下 | |
urllib.parse | quote | url编码函数,将中文进行转化为%xxx |
unquote | url解码函数,将%xxx转化为指定字符 | |
urlencode | 给一个字典,将字典拼接为query_string,并且实现了编码的功能 |
urllib.request请求后反馈的response
response | 调用的方法 | 说明 |
---|---|---|
response | read() | 读取相应的内容,内容是字节类型 |
geturl() | 获取请求的url | |
getheaders() | 获取头部信息,列表里面有元素 | |
getcode() | 获取状态码 | |
readline() | 按行读取,放回列表,都是字节类型 |
from urllib import request,parse
url = "https://fanyi.baidu.com/sug"
word = input(">>>:")
from_data={
"kw": word
}
header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36"}
# 伪装请求头
request_url = request.Request(url=url,headers=header)
# 表单数据处理
from_data = parse.urlencode(from_data).encode()
response = request.urlopen(request_url,data=from_data)
ret = response.read().decode()
print(ret)
#创建一个handler
handler = urllib.request.HTTPHandler()
#通过handler创建一个opener
opener = urllib.request.build_opener(handler)
#构建请求对象
request = urllibb.request.Request(url = url,headers = headers)
#发送请求
response = opener.open(request)
# open 与 URLopen用法是一样的,只不过open用法更高级
动态设置代理IPfrom urllib import request
url = "https://www.baidu.com/s?ie=UTF-8&wd=ip"
#创建handler
handler = request.ProxyHandler({"http":"需要配置的代理ip:代理ip的端口号"})
opener = request.build_opener(handler)
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36"}
request_url = request.Request(url,headers=headers)
response = opener.open(request_url)
with open("ip.html","wb") as f:
f.write(response)
from urllib import request
from http import cookiejar
# 真实的模拟浏览器,当发送完post请求的时候,将cookie保存到代码中 保存在opener中
# 创建一个cookiejar对象
cj = cookiejar.CookieJar()
# 通过cookiejar创建一个handler
handler = request.HTTPCookieProcessor(cj)
# 根据handler创建一个opener
opener = request.build_opener(handler)
# 登陆请求的ajax的地址
post_url = "http://www.renren.com/"
# 登陆需要的参数
formdata = {}
# 请求头信息
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36"}
request_url = request.Request(post_url,headers=headers)
response = opener.open(request_url)
# 下面就可以爬取登陆之后的页面数据了
requests是urllib的一个封装
使用requests对对数据进行访问
安装:pip install requests
用来做什么:和urllib是同一个位置
headers = {}
data = {}
get请求
定制头部
requests.get(url,headers=headers,params=data)
post请求
定制头部
requests.get(url,headers=headers,data=data)
响应对象
r.text 字符串形式查看响应
r.content 字节类型查看响应
e.encoding 查看或者设置编码类型
r.status_code 查看状态码
r.headres查看响应头部
r.url 查看所请求的url
r.json() 查看json格式数据
import requests
#如果碰到会话相关的话题,首先要先创建一个会话
#往下所有的操作都是通过创建会话后的对象去访问
s = requests.Session()
post_url = ""
headers = {}
formdata = {}
res = s.post(url=post_url,headers=headers,data=format())