1

特に株価のために、Google FinanceからデータをWebスクレイピングしようとしています。私はここにある答えを使用しています: How to create a stock quote fetching app in python , and its working fine, but only for google. 私は正規表現を初めて使用し、何を変更する必要があるかに気付きましたが、その方法がわかりません。

以下のコードは、Google 見積もりの​​データを解析して現在の価格を取得するために機能します。

m = re.search('id="ref_694653_l".*?>(.*?)<', content)

ただし、694653 は Google 固有のものです。Zynga、ZNGAを実行する場合、次を探す必要があります。

<span id="ref_481720736332929_l">3.57</span>

検索する正規表現が欲しい

id="ref_SOME_NUMBER_l">SOME_PRICE"

どんな助けでも大歓迎です!

4

3 に答える 3

2

別のサイトから HTML をスクレイピングすることが最善の解決策になることはめったにありません。API が構築されたのには理由があります。機械で読み取り可能な財務データが必要な場合は、https://stackoverflow.com/a/10040996/254973を確認してください。

HTML のスクレイピングに固執する場合は、@minitech のようなライブラリを使用してください。正規表現を使用して HTML を解析しようとしないでください。ここでもっと読む

于 2013-03-11T02:05:35.620 に答える
0

正しい方法で行ってください。

import urllib2, re

from bs4 import BeautifulSoup

def get_quote(symbol):
    url = 'http://finance.google.com/finance?q=' + symbol
    soup = BeautifulSoup(urllib2.urlopen(url))

    return float(soup.find('span', id=re.compile(r'ref_\d+_l')).get_text())

HTMLを解析して同じように簡単に実行できるのであれば、正規表現は実際には答えではありません。

于 2013-03-11T02:20:19.300 に答える
0
match = re.search('<span (id="ref_\d*_l">\d*\.?\d*)</span>', content)
print match.group(1)
于 2013-03-11T02:25:33.750 に答える