python_爬虫进度_4、requests库和BeautifulSoup库

目录

requests库:

BeautifulSoup库:


content:内容

requests:请求

parser:解析器

soup:汤

findAll:查找全部

attrs:属性

status code: 状态代码

requests库:


​​​​用于获取HTML网页的源码

import requests

# response = requests.get("https://www.bilibili.com/?spm_id_from=444.41.0.0")
# print(response)  # Response类的实例,代表服务器返回给我们的实例
# print(response.status_code)  # 查看状态码

# 爬取哔哩哔哩
# 手动设定请求头,将代码请求伪装成用户请求
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}

bilibili = requests.get("https://www.bilibili.com/?spm_id_from=444.41.0.0", headers=headers)
print((bilibili.status_code))  # 查看状态码
print(bilibili.text)  # 拿到HTML原码


BeautifulSoup库:

用于解析HTML网页源码

from bs4 import BeautifulSoup
import requests

# content:内容 requests:请求 parser:解析器 soup:汤 findAll:查找全部 attrs:属性

# 发送get请求,得到网页的HTML后,就可以从中提取数据,获得信息,但手动找信息效率极低
# python有个用来做HTML解析的库——Beautiful Soup(第三方库,如requests一样,需安装)


content = requests.get("https://www.qidian.com/").text  # 通过get请求获得网页的HTML并作为字符串存储在content变量中
soup = BeautifulSoup(content,
                     "html.parser")  # 将这个content传入BeautifulSoup的构造函数里. 调用BeautifulSoup这个构造函数后,会获得一个实例对象,soup是一个实例对象,所以可以调用BeautifulSoup的全部属性和方法,这个soup就是HTML内容,
# BeautifulSoup除了解析HTML之外,还能解析其他类型的内容,所以除了需要传入解析的内容,还需要传入第二个参数去指定解析器
# 解析HTML的话可以传入html.parser, BeautifulSoup吧看起来复杂的HTML内容解析成树结构,让搜索和修改HTML结构变得更加容易
#
# print(soup.p)  # 查看HTML里第一个<p>元素,即文本段落元素.如果p标签里还有其他内容,会全部返回.
# print(soup.img)  # 查看第一个图片元素.
# findAll()方法:能根据标签,属性等找出所有符合要求的元素. 第一个参数传入要找的标签(如soup.findAll("p"),表示找p标签), 第二个参数为可选参数attrs,赋值为一个字典,传入键值对,键值对为想要找的属性和值.如soup.findAll("p",attrs={"class":"price_color})
# string()方法: 将标签中的字符串取出来
booknames = soup.findAll('a', attrs={"data-eid": "qd_A117"})  # 查找a标签,并在其中找符合需求的键值对
a = 1  # 定一个变量记录数的排名
for bookname in booknames:  # 将每个取到的值进行循环
    if bookname.string == None:  # 判断内容的字符串是不是为空,如果是图片则为空
        continue  # 为空则跳过
    else:
        print(f"第{a}名: {bookname.string}")  # 输出书的排行
        a += 1
        if a >= 16:  # 因为排行榜只有15本书,所以当循环进行至16次时,重置次数
            a = 1
            print()

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值