Python Webscrapping列表操作

时间:2016-06-05 13:22:35

标签: python web-scraping

嘿,我是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)在列表中。

非常感谢您的帮助;我非常感谢!

2 个答案:

答案 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)将字符串转换为整数。我希望有所帮助。