scrapy не переходит по ссылкам без ошибок - PullRequest
0 голосов
/ 30 мая 2018

URL ниже используется как для извлечения контента, так и для отслеживания, но ничего не произошло после извлечения контента.Не знаю, почему это не было выполнено.

Кажется, без ошибок.

enter image description here

1 Ответ

0 голосов
/ 01 июня 2018

Вы дважды запускаете запрос автора URL.Впервые скрести список авторов.Второй раз, чтобы очистить детали текущего автора.Статистика Dumping Scrapy (в конце регистрации) показывает количество "dupefilter / фильтрованных".Это означает, что отфильтрованные дублирующиеся URL-адресаОчистка сработает, если вы удалите функцию «parse_content» и напишите код, подобный следующему:

def parse(self,response):

    if 'tags' in response.meta:
        author = {}
        author['url'] = response.url

        name = response.css(".people-name::text").extract()
        join_date = response.css(".joined-time::text").extract()
        following_no = response.css(".following-number::text").extract()
        followed_no = response.css(".followed-number::text").extract_first()
        first_onsale = response.css(".first-onsale-date::text").extract()
        total_no = response.css(".total-number::text").extract()
        comments = total_no[0]
        onsale = total_no[1]
        columns = total_no[2]
        ebooks = total_no[3]
        essays = total_no[4]

        author['tags'] = response.meta['tags']
        author['name'] = name
        author['join_date'] = join_date
        author['following_no'] = following_no
        author['followed_no'] = followed_no
        author['first_onsale'] = first_onsale
        author['comments'] = comments
        author['onsale'] = onsale
        author['columns'] = columns
        author['ebooks'] = ebooks
        author['essays'] = essays

        yield author

    authors = response.css('section.following-agents ul.bd li.item')
    for author in authors:
        tags = author.css('div.author-tags::text').extract_first()
        url = author.css('a.lnk-avatar::attr(href)').extract_first()
        yield response.follow(url=url, callback=self.parse, meta={'tags': tags})

Будьте осторожны.Я удалил несколько строк во время тестирования.Вам нужно использовать случайные агенты в заголовках HTTP, задержке запроса или прокси.Я запустил коллекцию, и теперь я получил код состояния «403 Запрещено».

...