Python Web垃圾列表操作

2024-09-22 20:20:44 发布

您现在位置:Python中文网/ 问答频道 /正文

嘿,我是Python新手,我正在编写一个从网页中提取数据的程序。使用此搜索行:

carTypeWeb = soup.find_all("span", {"class":"h3"}) 

我得到以下输出:

> [<span class="h3">BMW 420d Gran Coupe M-Sportpaket DIEBSTAHLSCHADEN
> !!</span>,  <span class="h3 u-block">25.950 \u20ac</span>,  <span
> class="h3">BMW 420d Coupe Sport Line,Xenon,Navi,M-Tech,19 Zoll</span>,
> <span class="h3 u-block">26.795 \u20ac</span>,.....]

我现在正在努力解决a)删除列表中的每一个项目(在第1行和第3行上面复制的示例中)和b)仅在列表中的数值(例如价格25950和26795)上方有2行和4行

非常感谢您事先的帮助;非常感谢


Tags: 数据程序网页列表findblockh3class
2条回答

如果您只需要每隔一行,为什么不将代码更改为:

carTypeWeb = soup.find_all("span", {"class":"h3 u-block"})

你可以这样做:

# To read only alternate items of list starting from item 2

for i in range(1, len(carTypeWeb), 2):
    price = (carTypeWeb[i].text).split(' ')[0].replace('.','')

在上面的代码中,.text提取span标记之间的内容,然后.split[0],在空格处分割内容,第0部分给出: \u25.950

在这之后,将字符串中的.替换为无空格将为您提供: \u25950

然后您可以执行eval(price)将字符串转换为整数。我希望这有帮助

相关问题 更多 >