2015-04-29 4 views
2

Я пытаюсь очистить информацию о MLB-игроках с сайта MLB. Однако, используя urllib2 и BeautifulSoup, я не могу найти содержимое под «div». Но я могу видеть содержимое Chrome.Невозможно найти содержимое «div» с помощью BeautifulSoup

Примером является то, что на странице (http://mlb.mlb.com/team/player.jsp?player_id=150378). Информация о состоянии в верхней правой части показывает «Выпущено». Но я не могу найти эту строку/контент, используя BS4.

Вот мой код:

base_url = 'http://mlb.mlb.com/team/player.jsp?player_id=150378' 
request = urllib2.Request(base_url) 
response = urllib2.urlopen(request) 
soup = BeautifulSoup(response) 
player_status = soup.findAll('div',id='player_status') 
print player_status 

Я ожидал, что это есть строка, как «Статус: Выпущена», , но результат показывает только

[<div id="player_status"></div>] 

Я никогда не сталкивался с этой проблемой раньше , Может кто-то помочь мне с этим? Спасибо!

ответ

1

Информация об игроке Информация о игроке, которая находится на этой странице, является ответом на дополнительный запрос XHR к API JSON. Вы можете имитировать его, например, используя requests:

>>> import requests 
>>> 
>>> url = "http://mlb.mlb.com/lookup/json/named.player_info.bam?sport_code=%27mlb%27&player_id=150378" 
>>> 
>>> response = requests.get(url) 
>>> data = response.json() 
>>> data['player_info']['queryResults']['row']['status'] 
Released 
+0

Спасибо! Но что, если я тоже хочу получить его статистику карьерного роста? Кроме того, почему ваш URL отличается от моего? Как вы получаете этот URL-адрес? Благодаря! – Jason

+0

@Jason данные страницы динамически построены с набором асинхронных вызовов для разных конечных точек API - вы можете наблюдать их в инструментах разработчика браузера - вкладке сети. – alecxe

+0

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

Смежные вопросы