#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. спасибо тебе, Мохаммед, ты спасаешь мне жизнь