Я пытаюсь очистить данные с помощью Scrapy и вычистить результат цены от любых нежелательных символов с помощью mapcompose.
Результат, который я получил до сих пор, дает мне чистую цену, без каких-либо нежелательных символов, таких как знак валюты или любой другой. или же ,
Но это дает мне «лишние» пустые строки.
import scrapy
from scrapy.loader import ItemLoader
from scrapy.loader.processors import MapCompose, Join
from makelaars.items import MakelaarsItem
class BasicSpider(scrapy.Spider):
name = 'basic'
allowed_domains = ['web']
start_urls = ['https://www.bouka-makelaars.nl/koopaanbod']
def parse(self, response):
l = ItemLoader(item=MakelaarsItem(), response=response)
#Extracting the content using css selectors
l.add_css('address', '.details.property-page-link > h2[class=address]::text')
l.add_css('price', '.price::text',MapCompose(lambda i: i.replace('.', '')),re='[.0-9]+')
return l.load_item()
Вывод, который я получил до сих пор:
{'address': [u'Wezelrade 143 B',
u'Wilhelmina van Pruisenlaan 245',
u'Suzannaland 206',
u'Molenweide 32',
u'Spiraeastraat 00 2e etage',
u'Kerklaan 122',
u'Brandtstraat 163 /163A',
u'Wouwermanstraat 9 /11/13/15',
u'Scheepersstraat 100 /102/102A',
u'Honthorststraat 137 /135',
u'Brandtstraat 151 151A'],
'price': [u'119500',
u'',
u'',
u'200000',
u'',
u'',
u'269500',
u'',
u'',
u'539500',
u'',
u'',
u'200000',
u'',
u'',
u'299000',
u'280000',
u'',
u'',
u'675000',
u'',
u'',
u'495000',
u'',
u'',
u'475000',
u'',
u'',
u'350000']}