ОШИБКА: обработка ошибки паука - ошибка Scrapy - PullRequest
0 голосов
/ 23 марта 2020

Я учусь использовать Scrapy и пытался применить его для сканирования моего школьного каталога.

Я использую Scrapy 2.0.0

Всякий раз, когда я нажимаю команду в cmd (Jupyter)

scrapy crawl gettheprof_dict

В журнале появляется ошибка:

ОШИБКА: обработка ошибки паука https://bizfaculty.nus.edu.sg/faculty-directory/> (реферер: отсутствует)

Вот код моего паука gettheprof_dict:

# -*- coding: utf-8 -*-
import scrapy


class GettheprofDictSpider(scrapy.Spider):
    name = 'gettheprof_dict'
    allowed_domains = ['bizfaculty.nus.edu.sg']
    start_urls = ['http://bizfaculty.nus.edu.sg/faculty-directory/','http://bizfaculty.nus.edu.sg/faculty-directory/page/2/']

    def parse(self, response):

        print("processing: " + response.url)

        #Extract data using css selectors
        prof_name  = response.css("div.cards-details h4 a::text").extract()
        prof_class = response.css("div.cards-details div span:text").extract()

        prof_department=response.css("div.cards-details div strong::text").extract()

        prof_place = response.css("ul.cards-contact li:nth-child(1) div::text").extract(),
        prof_phone = response.css("ul.cards-contact li:nth-child(2) div::text").extract(),
        prof_email = response.css("ul.cards-contact li:nth-child(3) div::text").extract(),

        row_data=zip(prof_name,prof_class,prof_department,prof_place,prof_phone,prof_email)

        #Making extracted data row wise
        for item in row_data:
            #create a dictionary to store the scraped info
            scraped_info = {
                #key:value
                'page':response.url,
                'Prof_name' : item[0], #item[0] means product in the list and so on, index tells what value to assign
                'Prof_Class' : item[1],
                'Prof_Department' : item[2],
                'Prof_place' : item[3],
                'Prof_phone' : item[4],
                'Prof_email' : item[5],

            }

            #yield or give the scraped info to scrapy
            yield scraped_info

Понятия не имею, что пошло не так. Я могу легко получить доступ к ссылке. Любые предложения будут очень очень полезны. Пожалуйста, помогите!

1 Ответ

0 голосов
/ 23 марта 2020

Оказывается, это не ошибка, которая заставляет мой Scrapy бездействовать, но мой код сделал несколько неправильных синтаксисов.

        prof_class = response.css("div.cards-details div span:text").extract()

Должно быть:

        prof_class = response.css("div.cards-details div span::text").extract()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...