soup.find не может найти HTML-путь и возвращает «Нет», но путь существует. кто-нибудь знает, где я ошибаюсь?

#python #web-scraping #beautifulsoup

Вопрос:

Я пытаюсь найти в Интернете некоторые данные из yahoo finance. в частности, я ищу оценку ESG отдельных фирм. это мой первый раз, когда я использую BeautifulSoup и запрос, а также просматриваю HTML-код. может ли кто-нибудь взглянуть на мой код и увидеть, где я ошибся?

заранее благодарю вас!

 # libraries
from bs4 import BeautifulSoup
import pandas as pd
import requests
import ipywidgets as widgets
from ipywidgets import interact

# check if we can still access website
try: 
    ESG_data = requests.get('https://finance.yahoo.com/quote/FB/sustainability?p=FB').text
    print ('succes')
except:
    print('Could not retrive')

# parse the url
soup = BeautifulSoup(ESG_data, 'html5lib')

  # look for object , not working now 
ESG_score = soup.find('div',{'class':'Fz(36px) Fw(600) D(ib) Mend(5px)'})
print(ESG_score)
 

Ответ №1:

Вы должны добавить user-agent в заголовки.

 from bs4 import BeautifulSoup
import pandas as pd
import requests
import ipywidgets as widgets
from ipywidgets import interact
# check if we can still access website
try: 
    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 Edg/95.0.1020.30',
    }

    params = (
        ('p', 'FB'),
    )

    ESG_data = requests.get('https://finance.yahoo.com/quote/FB/sustainability', headers=headers, params=params).text
    print ('succes')
except:
    print('Could not retrive')

# parse the url
soup = BeautifulSoup(ESG_data, 'lxml')

  # look for object , not working now 
ESG_score = soup.find('div',{'class':'Fz(36px) Fw(600) D(ib) Mend(5px)'}).text
print(ESG_score)
 

Комментарии:

1. привет, Мохаммед, это сработало! не могли бы вы немного рассказать мне, почему я должен был добавить это или где я могу прочитать больше информации об этом материале.?

2. Я знал это по своему небольшому опыту. Многим сайтам требуется Агент пользователя для защиты сайта от атак и очистки. Используйте этот сайт, это облегчит вам отправку запросов. Ссылка

3. спасибо тебе, Мохаммед, ты спасаешь мне жизнь