request库的用法
request库的安装
pip3 install request
request的主要方法
1、我们主要使用以下方法去请求网页信息,获取网页文件信息
requests.post('http://httpbin.org/post')
requests.get('http://httpbin.org/get')
2、在请求某些网站访问时必须带有浏览器等信息,如果不传入headers就会报错
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
}
response = requests.get("发现 - 知乎", headers=headers)
print(response.text)
3、调用方法后返回网页信息的变量属性
response = requests.get('简书 - 创作你的创作')
# 状态码
print(type(response.status_code), response.status_code)
print(type(response.headers), response.headers)
print(type(response.cookies), response.cookies)
# 网页链接
print(type(response.url), response.url)
print(type(response.history), response.history)
bs4库用法
bs4库的安装
pip install bs4
bs4库的用法
bs4库通过将request库方法返回的网页信息解析,生成一颗类树状的数据,方便我们去调用和遍历。
# 调用request库的get方法获取网页信息
response = requests.get('https://www.52bqg.org/')
# 传入刚获取到的网页信息以及要使用解析器参数
soup = BeautifulSoup(response.text,'html.parser')
BeautifulSoup可以接受以下几种解析器的参数来对信息进行初始化。
解析网页信息后,我们就可以便捷的寻找我们想要的信息。BeautifulSoup中的树状数据格式与html文本类似。
例如,假如我们需要从获取到的网页信息中寻找以下信息
<div class="cl3">
<a href='http://firefox.com.cn/'></a>
<p>
油茶是生活在广西、湖南、贵州等山区的瑶族、侗族、苗族等少数民族最喜爱的一种传统食品。制作方法是以老叶红茶为主料,用油炒至微焦而香,放入食盐加水煮沸,多数加生姜同煮,味浓而涩,涩中带辣,在古镇内的小巷里就能喝到。景区保留了传统的茶叶作坊以及唐宋时期的蒸青制茶工艺,游客还可以吃到按...价格
<strong>10元/碗 </strong>
</p>
<p>
<strong>推荐等级:<strong class="p1">A级</strong></strong>
</p>
</div>
那么我们可以使用find函数来获取到该div
# 第一个参数为你所要寻找的标签名,第二个参数为你要寻找的标签的属性名键值对
div = soup.find('div',attrs={'class':'cl3'})
# 同理,你也可以寻找这样的div
#soup.find('div',attrs={'id':'cl3'})
注意:因为find函数只会返回符合条件的第一个标签信息,如果没有添加attrs参数,则可能不会找到你想要的信息,而findAll函数可以返回符合条件的所有标签信息。
找到该div标签后,我们提取到p标签中的文字信息
listP = div.findAll('p')
for p in listP:
# 使用标签中的string属性可以获取到标签之间的文字信息
print(p.string)
当然,我们也可以获取到a标签中的网站信息
labelA = div.find('a')
# 使用[]来获取标签的属性信息
print(labelA ['href'])
BeautifulSoup中仍有许多有用的属性,例如
# 获取当前标签的name值
print(div.name) # div
print(labelA .name) # a
# 获取当前标签的父亲节点
labelA.parent # div
#获取当前节点的class属性值
print(div['class']) # cl3