Webcrawler:在Mac上使用Python3从数组中提取字符串

问题描述 投票:0回答:1

我在编写网络抓取工具以提取货币汇率时遇到问题:

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/” ...

python regex dictionary web-crawler
1个回答
0
投票

我建议您先检查定位器。您确定rates_array不为空吗?另外,请尝试:rates_array [i] .text

© www.soinside.com 2019 - 2024. All rights reserved.