我对编码非常陌生,我试图编写一个从coinmarketcap输入当前Litecoin价格的代码。但是,我无法让它工作,打印并清空列表。
import urllib
import re
htmlfile = urllib.urlopen('https://coinmarketcap.com/currencies/litecoin/')
htmltext = htmlfile.read()
regex = 'span class="text-large2" data-currency-value="">$304.08</span>'
pattern = re.compile(regex)
price = re.findall(pattern, htmltext)
print(price)
Out come&#34; []&#34; 。问题可能很小,但我非常感谢你的帮助。
答案 0 :(得分:1)
正则表达式通常不是处理HTML的最佳工具。我建议看一下像BeautifulSoup这样的东西。
例如:
import urllib
import bs4
f = urllib.urlopen("https://coinmarketcap.com/currencies/litecoin/")
soup = bs4.BeautifulSoup(f)
print(soup.find("", {"data-currency-value": True}).text)
目前打印“299.97”。
对于这个简单的情况,这可能不如使用re
那样好。但是,请参阅Using regular expressions to parse HTML: why not?
答案 1 :(得分:0)
您需要更改RegEx并在括号中添加一组以捕获值。
尝试匹配以下内容:<span class="text-large2" data-currency-value>300.59</span>
,您需要此RegEx:
regex = 'span class="text-large2" data-currency-value>(.*?)</span>'
(.*?)
组用于记录号码。
你得到:
['300.59']