【发布时间】:2019-06-26 05:29:47
【问题描述】:
有人可以告诉我为什么 scrapy 会以任意顺序提取数据。我正在尝试在此页面上进行抓取。这个想法是从上到下提取所有数据房屋,然后转到下一页并执行相同的操作。 (直到第 20 页)
我不知道为什么我只拿一些房子,按任何顺序。谢谢
from scrapy.item import Field,Item
from scrapy.spiders import CrawlSpider,Rule
from scrapy.linkextractors import LinkExtractor
from scrapy.loader import ItemLoader
from scrapy.loader.processors import MapCompose
class PropietiItem(Item):
titulo=Field()
tipo= Field()
class PropietiCrawler(CrawlSpider):
name= "MiPrimerCrawler"
start_urls= ['https://www.propertyfinder.ae/en/search?c=2&l=1&ob=nd&page=1']
allowed_domains= ['propertyfinder.ae']
rules= (
Rule(LinkExtractor(restrict_xpaths=('//div/a [@class="pagination__link pagination__link--next"]')),follow=True),
Rule(LinkExtractor(restrict_xpaths=('//div [@class="card-list__item"]/a [@class="card card--clickable"]')),follow=True,callback= 'parse_items'),
)
def parse_items(self,response):
item= ItemLoader(PropietiItem(),response)
item.add_xpath('titulo','/html/body/main/div[1]/div/div[2]/div[2]/div[1]/div/h1/text()')
item.add_xpath('tipo','/html/body/main/div[1]/div/div[2]/div[2]/div[1]/div/div/h2/text()')
yield item.load_item()
【问题讨论】:
-
请修正您的代码示例的缩进并删除重现您的问题不需要的任何代码(例如,
MapCompose已导入但未使用)。
标签: python database web-scraping request scrapy