Python 使用BeautifulSoup4进行网页刮取失败

Python 使用BeautifulSoup4进行网页刮取失败,python,beautifulsoup,Python,Beautifulsoup,我正在制作一个程序,收集加密货币verge的价值。这个脚本成功了: import urllib2 from bs4 import BeautifulSoup url=("https://coinmarketcap.com/currencies/verge/") page=urllib2.urlopen(url) soup=BeautifulSoup(page,"html.parser") find_value=soup.find('span',attrs={'class':'text-large

我正在制作一个程序,收集加密货币verge的价值。这个脚本成功了:

import urllib2
from bs4 import BeautifulSoup
url=("https://coinmarketcap.com/currencies/verge/")
page=urllib2.urlopen(url)
soup=BeautifulSoup(page,"html.parser")
find_value=soup.find('span',attrs={'class':'text-large2'})
price=find_value.text
虽然问题是结果是美元,我住在澳大利亚。所以我接下来做的就是把这个值放到美元兑澳元的转换器里,找到我的值。我尝试了以下代码:

url2="http://www.xe.com/currencyconverter/convert/?
Amount="+price+"&From=USD&To=AUD"
print url2
page2=urllib2.urlopen(url2)
soup2=BeautifulSoup(page2,"html.parser")
find_value2=soup.find('span',attrs={'class':'uccResultAmount'})
print find_value2

结果是,我会得到正确的url,尽管我会得到错误的结果。有人能告诉我哪里出了问题吗?谢谢你,你可以使用正则表达式来清理货币转换器:

import urllib
from bs4 import BeautifulSoup
import re
def convert(**kwargs):
   url = "http://www.xe.com/currencyconverter/convert/?Amount={amount}&From={from_curr}&To={to_curr}".format(**kwargs)
   data = str(urllib.urlopen(url).read())
   val = map(float, re.findall("(?<=uccResultAmount'>)[\d\.]+", data))
   return val[0]

url="https://coinmarketcap.com/currencies/verge/"
page=urllib.urlopen(url)
soup=BeautifulSoup(page,"html.parser")
find_value=soup.find('span',attrs={'class':'text-large2'})
print convert(amount = float(find_value.text), from_curr = 'USD', to_curr = 'AUD') 

有几件事。1.请在仍然可以的时候切换到python3,2将很快淘汰,2。您是否介意发布您的价格和预期输出,这样人们就不必运行您的所有代码?谢谢。这些问题通常是由于您试图通过javascript填充的信息造成的。因此,它不在BS有权访问的标记中。因此,价格每秒都在变化,因此没有绝对值
0.170358