bs4模块

bs4解析——HTML语法

 HTML(Hyper Text Markup Language)超⽂本标记语⾔, 是我们编写⽹⻚的最基本也是最核⼼的⼀种语⾔. 其语法规则就是⽤不同的标签对⽹⻚上的内容进⾏标记, 从⽽使⽹⻚显示出不同的展示效果 

<h1>
    哈哈哈
</h1>
上述代码的含义是在页面中显示"哈哈哈"三个字, 但是我爱你三个字 被"<h1>"和"</h1>"标记了, 这个时候,浏览器在展示的时候就会让“哈哈哈”变成 标题, 所以HTML的语法就是⽤类似这样的标签对页面内容进行标记, 不同的标签表现出来的效果也是不⼀样的
<body text="green" bgcolor="#eee">
    哈哈哈
</body>
标签中还可以给出xxx=xxx这样的东西,通过xxx=xxx这种形式对h1标签进⼀步的说明了,这种语法在html中被称为标签的属性. 并且属性可以有很多个
HTML语法总结:
<标签 属性="值" 属性="值">
    被标记的内容
</标签>

bs4模块的安装

pip install bs4

如果安装的速度慢, 建议更换国内源(推荐阿⾥源或者清华源)
pip install -i
https://pypi.tuna.tsinghua.edu.cn/simple bs4

bs4模块的使用

bs4在使用的时候就需要参照⼀些html的基本语法来进行使用
案例:抓取食品商务网果蔬价格:
https://price.21food.cn/guoshu/

第一步:拿到页面源代码

import requests
url = "https://price.21food.cn/guoshu/"
resp = requests.get(url)
print(resp.text)

第二步:将页面源代码丢给BeautifulSoup, 然后我们就可以通过bs对象去检索页面源代码中的html标签

import requests
from bs4 import BeautifulSoup

#拿到页面源代码
url = "https://price.21food.cn/guoshu/"
resp = requests.get(url)

#运用BeautifulSoup解析
page = BeautifulSoup(resp.text,features="html.parser")
table = page.find("div",class_="gs_top_t2")
print(table)

第三步:拿到所有数据

在HTML中,tr表示行,td表示列,想要获取所有的信息,可以先获得每一行的信息,再将每一行切片成每一列,这样就可以得到单一的元素

import requests
from bs4 import BeautifulSoup

#拿到页面源代码
url = "https://price.21food.cn/guoshu/"
resp = requests.get(url)

#运用BeautifulSoup解析
page = BeautifulSoup(resp.text,features="html.parser")
table = page.find("div",class_="gs_top_t2")
print(table)

#拿到所有数据
trs = table.find_all("tr")[1:]
for tr in trs:
    tds = tr.find_all("td")
    name = tds[0].text
    low = tds[1].text
    avg = tds[2].text
    date = tds[3].text
    print(name,low,avg,date)

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值