2

次のようなストックウェブスクレイパーのリストがあります:[......'、' xlnx> XLNX <'、' yhoo> YHOO <']

引用符だけで辞書を取得するにはどうすればよいですか?私はこれが簡単であることを知っていますが、私はいくつかの助けを使うことができます。ありがとう

import urllib
import re

base_url = 'http://www.nasdaq.com/markets/indices/nasdaq-100.aspx'
content = urllib.urlopen(base_url).read()
list = re.findall('http://www.nasdaq.com/symbol/(.*)/a>', content)
print list
4

3 に答える 3

2

辞書ではなくリストがあります。listまた、組み込みの名前であるため、変数に名前を付けないでください。

>>> content
['xlnx>XLNX<', 'yhoo>YHOO<']
>>> tickers = []
>>> for s in content:
...     tickers.append(''.join(i for i in s if i.isupper()))
... 
>>> tickers
['XLNX', 'YHOO']
于 2012-09-08T19:09:02.110 に答える
1

正規表現ではなく、HTML パーサー (常にBeautifulSoupをお勧めします) を使用して HTML を解析する必要があります。

import re, urllib2
from BeautifulSoup import BeautifulSoup

url = 'http://www.nasdaq.com/markets/indices/nasdaq-100.aspx'
soup = BeautifulSoup(urllib2.urlopen(url))

for link in soup.findAll('a', href=re.compile('/symbol/'))[1:]:
  print link.text

出力:

ATVI
ADBE
AKAM
ALXN
ALTR
AMZN
AMGN
APOL
AAPL
AMAT
ADSK
ADP
AVGO
BIDU
BBBY
BIIB
BMC
BRCM
CHRW
CA
CELG
CERN
CHKP
CSCO
CTXS
CTSH
CMCSA
COST
DELL
XRAY
DTV
DLTR
EBAY
ERTS
EXPE
EXPD
ESRX
FFIV
FAST
FISV
FLEX
FOSL
GRMN
GILD
GOOG
GMCR
HSIC
INFY
INTC
INTU
ISRG
KLAC
KFT
LRCX
LINTA
LIFE
LLTC
MRVL
MAT
MXIM
MCHP
MU
MSFT
MNST
MYL
NTAP
NFLX
NUAN
NVDA
NWSA
ORLY
ORCL
PCAR
PAYX
PCLN
PRGO
QCOM
RIMM
ROST
SNDK
STX
SHLD
SIAL
SIRI
SPLS
SBUX
SRCL
SYMC
TXN
VRSN
VRTX
VIAB
VMED
VOD
WCRX
WFM
WYNN
XLNX
YHOO
于 2012-09-08T19:17:31.947 に答える
1

このようなもの:

>>> lis=['xlnx>XLNX<', 'yhoo>YHOO<']
>>> [x[x.index('>')+1:x.index('<')] for x in lis]
['XLNX', 'YHOO']
于 2012-09-08T19:28:49.007 に答える