1、requests 模块
res = requests.get("url") 请求网页
res.text 将获取的网页转化成文本格式
具体函数
res = requests.get("url")
res.text ====>获取文本
res.content ====>下载内容
举例 img_res= rrequests.get(url) =======>获取要下载的文件的url
name = "name"+".jpg" ==========>文件命名成要下载的内容的格式 一般url最后 都有格式 比如 jpg MP4 等
with open ("name",‘wb’) as f: ======》打开文件,以前面 编写的名字为文件名 一个下载文件要建立一个存放文件
f.write(img_res.content) =======>下载文件进入存放文件,自动转化成我们要下载的文件
res.encoding =====>解码方式
res.aparent_encoding ======>获取解码方式
res.status_code ======> 获取访问的状态码 200表示成功
404 表示访问不成功
300 是否 稳定网站
res.cookies.get_dic() =======>获取字典类型的cookies
requests.get("url",cookie = {"xx":"xxxx"})
重点 正对POST类型的网站,可以在网页检查中寻找 发送的data 数据类型 post数据的键名 在network from data 这个栏目里面
获取POST 页面 返回的LOCATION(解决 有searchid 的网站)
如果是返回 302,response header 里面就有 location 这个 header
r = requests.post('http://xyz.com/302',data = data)
r.headers['Location']
还有一个简单做法就是:
r = requests.post(url, allow_redirects=True)
print(r.url)
requests.post(url,data)
url = 找到的post请求的网址
data == 在network 里面找到的列表名称和要输入的数据 组成的一个字典结构 data里面 再带上刚才post获取的cookie 就可以实现登陆 或者取得location 里面的网址 就是要登陆的网址 res.hearders["location"]
2、beautifulsoup
soup = beautifulsoup(res.text,features="lxml") =======>建立soup对象 lxml的效率是最高的
v1 = soup.find("div") =====>寻找第一个div 标签下的内容
v1 =soup.find(id = "il") ======>寻找id是il的标签里的内容
v1 =soup.find("div",id="il") ========>寻找第一个id等于il的 div标签 里的内容 两个条件同时满足 id可以改成其他属性
v2 =soup.find_all("div") =====>寻找所有div 标签下的内容 列表类型
v2 =soup.find_all(id = "il") ======>寻找所有 id是il的标签里的内容 列表类型
v2 =soup.find_all("div",id="il") ========>寻找所有的id等于il的 div标签 里的内容 两个条件同时满足 列表类型
obj =v1 获取标签内容
obj = v2[0] 获取标签内容
obj.text 获取标签内容文本格式
obj.attrs 获取标签 属性内容