web-scraping - Beautiful Soup 不提取网站编号,只提取公式
问题描述
在这个网站中,我想提取这段 HTML 的值 170:
<div class="right">
<span class="currency">
R$
</span>
<span class="price">
170
</span>
<span class="diary">
a diária
</span>
</div>
但是,当我用漂亮的汤提取这段 HTML 时,我得到:
<div class="right">
<span class="currency">
R$
</span>
<span class="price">
{{ property.minRateInCents / 100 | numberFormat(0) }}
</span>
<span class="diary">
a diária
</span>
</div>
我的代码是:
soup.find("div", class_="coluna").find("div", class_="right")
为什么我无法访问值 170 ?那个公式是什么?
解决方案
如果您打印,soup
您会发现div
标签内存在数据,您可以从中提取
import requests
headers={"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36"}
res=requests.get("https://www.temporadalivre.com/aluguel-temporada/brasil/sao-paulo/ubatuba/lagoinha/76203-vila-praiana-apartamento-de-um-quarto-na-praia-da-lagoinha",headers=headers)
soup=BeautifulSoup(res.text,"html.parser")
price=soup.find("div",attrs={"data-behavior":"property-details-data"})['data-property-min-rate-in-cents']
price=int(price)/100
price
输出:
170.0
如何从网站找到:
转到 Chrome 开发人员模式并刷新您的站点,现在转到左侧的网络选项卡,您将获得一个选项卡来搜索任何数据,因为从代码中我们可以看到它除以 100,因此使用 17000 在该选项卡中搜索
现在它将返回 URL,您可以使用该 URL 并调用它并找到包含该数据的适当标签
图片 :
推荐阅读
- javascript - 在自定义钩子中使用钩子时触发的钩子错误使用无效?
- c - 如何将字符串与子字符串进行比较以将第一个和第二个之间的相等部分转换为'*'而不使用
- node.js - 仅在一台服务器上测试 discord bot discordjs
- eclipse - 为什么我不能将本地 GitHub 存储库添加到 Eclipse 中?
- mongodb - MongoDB Atlas 未出现在 Azure 数据工厂 2 的链接服务列表中
- codemirror - 使用 codemirror 在服务器上执行代码
- airflow - 气流连接密码解密
- javascript - React Js - 表格不对名称进行排序
- javascript - react-responsive-carousel:如何给拇指固定高度?
- groovy - groovy lang 缺少属性异常