python - 跨度类中的Python解析字符串
问题描述
我已经尝试过其他解决方案,但没有奏效。这是我的跨度标签:
<span class="DFlfde SwHCTb" data-precision="2" data-value="7.0498">7,05</span>
这是我的完整代码
import requests
from bs4 import BeautifulSoup
#<span class="DFlfde SwHCTb" data-precision="2" data-value="7.0498">7,05</span>
url = "https://www.google.com/search?q={}+kaç+tl".format(input())
r = requests.get(url)
source = BeautifulSoup(r.content,"html")
print(source.find_all("span",string="DFlfde SwHCTb"))
它返回一个空列表,我需要值“7.05”,我怎样才能达到它?谢谢
解决方案
获取数据需要做两件事:
- 指定
User-Agent
标题(谷歌需要这个来返回正确的数据) - 在
.find_all
指定class_=
参数中,而不是string
代码:
import requests
from bs4 import BeautifulSoup
url = "https://www.google.com/search?q=100+kaç+tl"
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0'}
r = requests.get(url, headers=headers)
source = BeautifulSoup(r.content, "html.parser")
print(source.find_all("span", class_="DFlfde SwHCTb"))
# or
print(source.select_one('span.DFlfde.SwHCTb').text)
印刷:
[<span class="DFlfde SwHCTb" data-precision="2" data-value="13.0095">13,01</span>]
13,01
推荐阅读
- ios - 撤销当前的 APNs 密钥会破坏实时应用程序吗?
- java - 将 REST 查询参数存储为静态字段
- collision - 与触发器碰撞玩家并让玩家返回主菜单的问题
- coldfusion - CFCHART 整体显示 y 轴数字
- angular - 将 p-table 列的当前页面中的数据传递给另一个应用程序
- postgresql - 如何根据传递给 SQL 函数的 ID 返回不同的表数据
- javascript - JavaScript:利用 setInterval() 调用类方法
- php - 其他元素未返回正确结果
- python - 向多个 csv 文件添加标题
- powershell - 在 PS 中动态设置属性