使用python的正则表达式意外结束

2024-04-19 06:35:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从雅虎那里抢股价!根据Chris Reeves的教程,将资金存入本地数据库,在尝试执行此代码时,我一直收到上述错误。谁能告诉我这里出了什么事吗?谢谢。在

from threading import Thread
import urllib
import re
import MySQLdb

gmap = {}

def th(ur):
    base = "http://finance.yahoo.com/q?s="+ur
    regex = '<span id="yfs_l84_'+ur.lower()+'">(.+?)</span>'
    pattern = re.compile(regex)
    htmltext = urllib.urlopen(base).read()
    results = re.findall(pattern, htmltext)
    try:
        gmap[ur] = results[0]
    except:
        print "Got an error"

symbolslist = open("multithread/stocks.txt").read()
symbolslist = symbolslist.replace(" ","").split(",")

print symbolslist

threadlist = []

for u in symbolslist:
    t = Thread(target=th,args=(u,))
    t.start()
    threadlist.append(t)

for b in threadlist:
    b.join()

这就是我得到的确切错误:

^{pr2}$

Tags: importrebase错误urllibthreadregexpattern
1条回答
网友
1楼 · 发布于 2024-04-19 06:35:42

唉,你没告诉我们重要的部分。也就是说,打印symbolslist当您将该列表中的某个粘贴到<span ...样板中时,该列表中的某个正在创建一个无效的正则表达式。在

您可以通过如下方式更改该行来修复它:

    regex = '<span id="yfs_l84_' + re.escape(ur.lower()) + '">(.+?)</span>'
                                   ^^^^^^^^^^          ^

然而,如果这能奏效,它可能只会掩盖真正的问题。真正的问题可能是你在symbolslist中有某种无稽之谈。在

相关问题 更多 >