【发布时间】:2018-02-15 06:03:06
【问题描述】:
以下代码输出空列表;我希望它能打印股票价格。任何帮助将不胜感激。谢谢!
import urllib.request
import re
companyList = ["aapl","goog","nflx"]
for i in range(len(companyList)):
url = "https://finance.yahoo.com/quote/"+companyList[i]+"?p="+companyList[i]
htmlfile = urllib.request.urlopen(url)
htmltext = htmlfile.read()
regex = '<span class="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)" data-reactid="35"><!-- react-text: 36 -->()(.+?)<!-- /react-text --></span>'
pattern = re.compile(regex)
price = re.findall(pattern, str(htmltext))
print(price)
【问题讨论】:
-
我看不出多次投反对票的意义,尤其是对于 SO 的新手。也许您可以告诉我们您要从该页面中提取的内容。同时,我建议您最好使用 BeautifulSoup 或其他处理网页的方法之一,而不是正则表达式。这种方法充满了困难。
-
如果您想向我发送评论,请输入“@”符号以获取菜单并从列表中选择我的姓名。
-
请不要使用正则表达式解析 HTML。您可以查看这个著名(或臭名昭著?)的问答了解详情:stackoverflow.com/questions/1732348/…
-
@BillBell 非常感谢您的建议。我第一次尝试 Webscraping,我正在关注的教程使用了正则表达式。我肯定会转向 BeautifulSoup 上的一个。 :)
-
@cddt 这个链接很有帮助。谢谢。
标签: python python-3.x web-scraping python-3.5 urllib