requests和bs4
1. requests的使用方法
'''
1.发送请求
requests.get(url,*, headers, paramas, proxies) - 发送get请求
requests.post() - 发送post请求
参数:
url - 请求地址(一个网站的网址、接口地址、图片地址等)
headers - 设置请求头(设置cookie和User-Agent的时候使用)
pramas - 设置参数
proxies - 设置代理
'''
'''
2. 获取相应信息
设置编码方式(乱码的时候才需要设置)
'''
'''获取响应头'''
print(respond.headers)
'''获取响应体'''
print(respond.text)
print(respond.json)
print(respond.content)
2.添加请求头
'''
需要登录的网站,首先登录账户,通过检查获取cookie信息
'''
3.json解析
import requests
response = requests.get('json接口')
all_news = response.json()['data']
for news in all_news:
print(news['Title'])
print(news['Image']['url'])
4.图片下载
import requests
def download_image(img_url: str):
response = requests.get(img_url)
data = response.content
f = open(f'files/{img_url.split("/")[-1]}, 'wb')
f.wrire(data)
f.close()
5.bs4的使用
from bs4 import BeautifulSoup
data = '网页数据'
soup = BeautifulSoup(data, 'lxml')
'''
1) 获取标签
BeautifulSoup对象.select(css选择器) - 获取css选择器选中的所有标签,返回列表中的元素是标签对象
BeautifulSoup对象.select_one(css选择器) - 获取css选择器选中的第一个标签,返回的是标签对象
'''
result1 = soup.select('p')
result2 = soup.select('#p1')
result3 = soup.select('div p')
'''
2) 获取标签内容
标签对象.string - 获取标签中的文字内容(只有标签内容是纯文字的时候有效,否则结果为None
p1 = soup.select_one('p')
print(p1) # <p>段落1</p>
print(p1.string) # 段落1
标签对象.get_text() - 功能强大
'''
p2 = soup.select_one('span')
print(p2)
print(p2.get_text())
'''
标签对象.contents - 二进制数据
'''
'''
标签属性
标签对象.attrs[]
'''
a1 = soup.select_one('img')
print(a1)
print(a1.attrs['src'])
'''
通过BeautifulSoup().select()获取标签对象
'''