嘿,我是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)对于诸如2和4之类的行只有数值(例如价格25950和26795)在列表中。
非常感谢您的帮助;我非常感谢!
答案 0 :(得分:0)
如果您只想要每隔一行,为什么不将您的代码更改为:
carTypeWeb = soup.find_all("span", {"class":"h3 u-block"})
答案 1 :(得分:-1)
你可以这样做:
# 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)
将字符串转换为整数。我希望有所帮助。