2016-12-08 1 views
0

私はpython 2.7を使用しており、requests.contentをBeautifulSoupオブジェクトに変換しています。 divを表示するために開発者ツールを使用すると、div内にテキストがあります。 BeautifulSoupを使ってdivを返すと、divにテキストはありません。私のBeautifulSoupオブジェクトに、私のウェブページが行うテキスト属性が含まれていないのはなぜですか?

import pandas as pd 
from bs4 import BeautifulSoup 
from urllib2 import urlopen 
from string import punctuation 
from requests import get 

roster = pd.read_csv(#file w/ player names) 

name_corrections = { 

    'matt-dellavedova' : 'matthew-dellavedova', 
    'marcelinho-huertas' : 'marcelo-huertas', 
    'derrick-jones' : 'derrick-jones-jr', 
    'john-lucas' : 'john-lucas-iii', 
    'james-mcadoo' : 'james-michael-mcadoo', 
    'raulzinho-neto' : 'raul-neto', 
    'otto-porter' : 'otto-porter-jr', 
    'glenn-robinson' : 'glenn-robinson-iii', 
    'domas-sabonis' : 'domantas-sabonis', 
    'lou-williams' : 'louis-williams', 
    'joe-young' : 'joseph-young', 

    } 

url = 'http://projects.fivethirtyeight.com/carmelo/' 

def remove_punctuation(s): 
    s = ''.join([i for i in s if i not in ".,'"]) 
    return s 

def process_id(roster): 

    roster['538id'] = roster['Player'].apply(remove_punctuation) 

    roster['538id'] = roster['538id'].apply(lambda x: x.replace(" ",  "-")) 

    roster['538id'] = roster['538id'].apply(lambda x: x.lower()) 

    roster['538id'].replace(name_corrections, inplace=True) 


process_id(roster) 

page = get(xurl) 

soup = BeautifulSoup(page, 'lxml') 

soup.findAll('div', class_='market-value') 

これが返されます。

return from code

view from developer tools

答えて

2

を。これは、Webページをこするとき、人々が持っている共通の問題です。

単純に言えば、あなたが望むデータは、すべての後に、そのページhttp://projects.fivethirtyeight.com/carmelo/)ではありませんので、あなたのコードから何を得なかった理由です、そしてあなたが開発者向けツールで見てきたものが完全の結果でありますレンダリングされたウェブページ、したがって、すべてのデータは準備ができています。

実際のデータはこのURL(http://projects.fivethirtyeight.com/carmelo/ben-simmons.json)からのもので、元のページがWebブラウザで読み込まれてレンダリングされているときに要求されます。

詳しい説明は、直感的ではないかもしれませんが、check out this answerです。

+0

それ以降です。その答え/リンクは、フロントエンドで何が起こっているのかを理解するのに役立つ素晴らしい読書でした。 また、WebdriverとしてSeleniumを使用して、レンダリングの問題の解決に役立てることができました。 フィードバックと回答をありがとう。 – rconnol

+0

私は助けて嬉しい:) – Shane

関連する問題