我在编写网络抓取工具以提取货币汇率时遇到问题:
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin
import re
url = "https://wechselkurse-euro.de/"
r = requests.get(url)
rates = []
status = r.status_code
if status != 200:
print("Something went wrong while parsing the website " + url)
temp = BeautifulSoup(r.text, "html.parser")
current_date = temp.select(".ecb")[0].text.strip().split(" ")[5]
#rates_array = temp.select(".kurz_kurz2.center", limit= 20).string
rates_array = temp.select(".kurz_kurz2.center", limit= 20)
#for i in rates_array:
# rate = rates_array[i].string
# rates.append(rate)
rates = list( map( lambda x: re.search(">\d{1}\.\d{4}",x), rates_array))
print(rates)
#rate_1EUR_to_USD =
#rate_1EUR_to_GBP =
我尝试了几种被注释掉的方法-它们都不起作用,我也不知道为什么。尤其是.string不起作用令我感到惊讶,因为rates_array似乎继承了bs4对象的所有不同信息,包括一个td标签<td class="kurz_kurz2 center" title="Aktueller Wechselkurs am 3.4.2020">0.5554</td>
的信息,我只想在标签中包含字符串(因此该值上例中为0.5554)。这应该很容易,但是没有任何效果,我在做什么错?
正则表达式应该不是问题,我在regExR上对其进行了测试。
我尝试使用当前处于活动状态的map函数,但无法按预期将map对象转换为列表。
select()。string返回一个空列表,并且当我尝试使用老式的方法通过for循环遍历函数的每个项目时,使用常规表达式搜索保存在rates_array中的字符串也是一样的。] >
String as attribute of bs4-object
我在编写网络爬虫以提取货币汇率时遇到问题:来自bs4的导入请求从urllib.parse导入BeautifulSoup导入urljoin导入re url =“ https://wechselkurse-euro.de/” ...
我建议您先检查定位器。您确定rates_array不为空吗?另外,请尝试:rates_array [i] .text