コメントはReactJSに移ったと言うので、lxml
は、HTMLページにデータがないため、もはやポイントにはなりません。今すぐあなたは周りを見回し、彼らがデータを引っ張っているエンドポイントを見つける必要があります。 の場合推奨動向ありがとうございます。
#!/usr/bin/env python3
import json
from pprint import pprint
from urllib.request import urlopen
from urllib.parse import urlencode
def parse():
host = 'https://query2.finance.yahoo.com'
path = '/v10/finance/quoteSummary/CSX'
params = {
'formatted' : 'true',
'lang' : 'en-US',
'region' : 'US',
'modules' : 'recommendationTrend'
}
response = urlopen('{}{}?{}'.format(host, path, urlencode(params)))
data = json.loads(response.read().decode())
pprint(data)
if __name__ == '__main__':
parse()
出力は次のようになります。
およそたデータはどのよう私が何をしたか
を検索する場所を
{
'quoteSummary': {
'error': None,
'result': [{
'recommendationTrend': {
'maxAge': 86400,
'trend': [{
'buy': 0,
'hold': 0,
'period': '0w',
'sell': 0,
'strongBuy': 0,
'strongSell': 0
},
{
'buy': 0,
'hold': 0,
'period': '-1w',
'sell': 0,
'strongBuy': 0,
'strongSell': 0
},
{
'buy': 5,
'hold': 12,
'period': '0m',
'sell': 2,
'strongBuy': 6,
'strongSell': 1
},
{
'buy': 5,
'hold': 12,
'period': '-1m',
'sell': 2,
'strongBuy': 7,
'strongSell': 1
},
{
'buy': 6,
'hold': 11,
'period': '-2m',
'sell': 2,
'strongBuy': 8,
'strongSell': 1
},
{
'buy': 6,
'hold': 11,
'period': '-3m',
'sell': 2,
'strongBuy': 8,
'strongSell': 1
}]
}
}]
}
}
:
- は、ターゲットウィジェット内のいくつかのユニークなトークン(たとえば、チャート値またはトレンド文字列)
- オープンを探しますページのソース(HTMLおよびJS用のフォーマッタを使用します(例:this)
- そこにトークンを探しますeページ3は
/* -- Data -- */
で始まるセクションです)
- スクリプトタグ(またはプログラムの包含物など)を取得するために「.js」を検索します。必要とする。JS)とそこにトークンを探し
- Firebugのか、クロム開発者ツールで開くネットワーク]タブとXHRを使用して、ターミナルを好む場合
- その後、余分なパラメータを削除し、エンドポイントがどのように反応するか見るために)Postman(またはカールを使用して要求した検査
メモリから、反応を開始したので、多くのコンテンツが動的に作成されました。どのようにソースを取得していますか? –
私は質問にコードを入れました。コンテンツは動的に作成されているように見えます。とにかくそのようなコンテンツを引き出すことができるのだろうかと思います。 –
はい、私はちょうど見ましたが、それは色付けなどを含めて完全に動的に作成されています。セレンを使って値を取得するのは簡単です。 –