Python строка синтаксического анализа в классе span - PullRequest
0 голосов
/ 05 мая 2020

Я уже пробовал другие решения, но не сработало. Вот мой тег диапазона:

<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», как я могу его найти? Спасибо

1 Ответ

0 голосов
/ 05 мая 2020

Есть 2 вещи, которые нужно сделать, чтобы получить ваши данные:

  1. указать User-Agent заголовок (Google нужен для возврата правильных данных)
  2. в .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
...