Scrapy For L oop не находит весь диапазон индекса - PullRequest
0 голосов
/ 05 февраля 2020

Я закончил учебную часть построения и удаления цитат, которые предоставляет Scrapy. Я сейчас пытаюсь сделать реальный сайт. Веб-браузер захватывает информацию, которую я ему отправляю, но не идет по списку, как я думал. Оболочка скрапа ошибается c, когда я перебираю список. когда я использую оболочку и передаю ее

response.css('div.organic-gallery-offer-outter')[0].get()

Она возвращает 4-й элемент на реальном веб-сайте.

Вот мой полный код.

import scrapy

class HatsSpider(scrapy.Spider):
    name = "hat_list"
    start_urls = [
    'https://www.alibaba.com/products/hats/CID32708.html?spm=a2700.galleryofferlist.0.0.2d7546c4jCXuac&IndexArea=product_en',
]


custom_settings = {
    "DEPTH_LIMIT": 1,
    "ROBOTSTXT_OBEY": False,
    "AUTOTHROTTLE_ENABLE": True,
    "AUTOTHROTTLE_START_DELAY": 5.0,
}
def parse(self, response):
    for hat_list in response.css('div.organic-gallery-offer-outter'):
        yield{
            "Title": hat_list.css('p.organic-gallery-title__content::text').get(),
            "Price": hat_list.css('p.gallery-offer-price span::text').get(),
            "Min Order": hat_list.css('p.gallery-offer-minorder span::text').get(),
            "Country": hat_list.css("div.organic-gallery-offer-section__seller-tags span::text").get(),
            "Years In Business": hat_list.css("div.organic-gallery-offer-section__seller-tags span.seller-tag__year::text").get(),
            "Response Rate": hat_list.css('div.organic-gallery-offer-section__reviews span::text').get(),
            "Review Score": hat_list.css('div.organic-gallery-offer-section__reviews span.seb-supplier-review__score::text').get(),
            "Contact Link": response.urljoin(hat_list.css('div.organic-gallery-offer-section__contact a::attr(href)').get()),
        }

I ' Мы также пытались нацелить разные теги div, но безуспешно. Последнее, что странно, это то, что в индексе всего 8 элементов, что-то еще, что он говорит вне индекса. На сайте более 40 пунктов на странице. Вот ссылка на то, на чем я практикуюсь.

https://www.alibaba.com/products/hats/CID32708.html?spm=a2700.galleryofferlist.0.0.2d7546c4jCXuac&IndexArea=product_en

1 Ответ

0 голосов
/ 06 февраля 2020

Этот сайт сильно зависит от JavaScript. Вам либо нужно использовать механизм рендеринга (например, spla sh), либо, если вы уже это делаете, вам нужно подождать немного дольше, чтобы правильно загрузить сайт, прежде чем начинать его очистку.

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