2017-03-23 6 views
0

私は同様の質問で別の投稿を見ましたが、私が探している特定の価値を見つけることができません。 (1が強調表示)私は、この特定の行を見つけることができないんだけどPythonのdiv内のDivsのBeautifulSoup

import bs4 as bs 
import urllib2 

response = urllib2.urlopen('https://www.meteomedia.com/ca/meteo/quebec/montreal?wx_auto_reload=') 
html = response.read() 
soup = bs.BeautifulSoup(html, 'lxml') 


for div in soup.find_all('div', id="main-container"): 
    print (div.get_text()) 

私はこのコードを使用していhttps://i.stack.imgur.com/OIlrc.png

私はAPIを使用することができます知っているが、私は」将来のプロジェクトでWebスクレイピングがどのように機能するかを理解しようとしています。ありがとうございました!!

答えて

1

あなたが選択したウェブサイトは、javascriptを使用してコンテンツの大半を作成します。単純なPythonリクエストを使用しても最終的なHTMLはすべて得られません。回避策は、ブラウザをリモートコントロールするためにseleniumのようなものを使用し、ブラウザにHTMLをレンダリングさせることです。 Pythonはセレンを介して最終的なHTMLを抽出することができます。

既に述べたように、それは例えば、使用されているAPIを使用して情報を抽出するために、より理にかなって、この場合に:

-10 

import bs4 as bs 
import urllib2 
import json 

response = urllib2.urlopen('https://www.meteomedia.com/api/data/caqc0363/cm?ts=1012') 
json_response = json.loads(response.read()) 
print json_response['obs']['t'] 

これは、現在の温度を表示するであろう

print json_responseの場合、使用可能なすべての情報を見ることができます。

+0

ありがとう、それは私が探していたものです! –

+0

あなたは大歓迎です!上下の矢印の下にある灰色のチェックマークをクリックして、解決策の1つを解決策として選択することを忘れないでください。 –

0

オープンChrome development ToolsNetWork tabに切り替え、ページを更新:

enter image description here

あなたはそれに要求を行うためにはPythonを使用し、XHRタブでデータリンクを見つけることができます。

+0

ありがとう、あなたは、適切なコードを見つけるために非常に便利です! –

関連する問題