Python列表正则表达式

3
我有一个股票网站爬虫的列表,长这样: [......', '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
3个回答

1
您有一个列表,而不是字典。此外,您不应将变量命名为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']

@DSM 是因为凌晨1点 :) - Burhan Khalid

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

你是指Beautifulsoup和正则表达式吧 :-) - 6502

1

类似这样的:

>>> lis=['xlnx>XLNX<', 'yhoo>YHOO<']
>>> [x[x.index('>')+1:x.index('<')] for x in lis]
['XLNX', 'YHOO']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接