Scrapy извлекает данные в любом порядке - PullRequest
0 голосов
/ 26 июня 2019

кто-то может сказать мне, почему скрапинг извлекает данные в любом порядке.Я пытаюсь скопировать на этой странице.Идея состоит в том, чтобы извлечь все хранилища данных сверху вниз, затем перейти на следующую страницу и сделать то же самое.(до 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()

1 Ответ

0 голосов
/ 27 июня 2019

Я понимаю, что вы пытаетесь искать элементы по коду html.

Если бы мне пришлось угадывать, я бы сказал, что он делает это в порядке элементов, которые он находит в HTML-коде.

Возможно, что некоторые элементы имеют HTML-код, который вы ищете, в то время как другие элементы помечены по-разному.

Я бы предложил сначала проверить html-код отсутствующих элементов. Если это не работает, я предлагаю использовать Selenium.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...