scrapy spider не возвращает никаких результатов

Это моя первая попытка создать паука, любезно пощадите меня, если я не сделал это правильно. Вот ссылка на сайт, на котором я пытаюсь извлечь данные. http://www.4icu.org/in/ . Я хочу, чтобы весь список колледжей отображался на странице. Но когда я запускаю следующий паук, я возвращаюсь с пустым файлом json. my items.py

import scrapy class CollegesItem(scrapy.Item): # define the fields for your item here like: link = scrapy.Field() 

Это паук colleges.py

  import scrapy from scrapy.spider import Spider from scrapy.http import Request class CollegesItem(scrapy.Item): # define the fields for your item here like: link = scrapy.Field() class CollegesSpider(Spider): name = 'colleges' allowed_domains = ["4icu.org"] start_urls = ('http://www.4icu.org/in/',) def parse(self, response): return Request( url = "http://www.4icu.org/in/", callback = self.parse_fixtures ) def parse_fixtures(self,response): sel = response.selector for div in sel.css("col span_2_of_2>div>tbody>tr"): item = Fixture() item['university.name'] = tr.xpath('td[@class="i"]/span /a/text()').extract() yield item 

2 Solutions collect form web for “scrapy spider не возвращает никаких результатов”

Как указано в комментарии к вопросу, есть некоторые проблемы с вашим кодом.

Прежде всего, вам не нужны два метода – потому что в методе parse вы вызываете тот же URL-адрес, что и в start_urls .

Чтобы получить некоторую информацию с сайта, попробуйте использовать следующий код:

 def parse(self, response): for tr in response.xpath('//div[@class="section group"][5]/div[@class="col span_2_of_2"][1]/table//tr'): if tr.xpath(".//td[@class='i']"): name = tr.xpath('./td[1]/a/text()').extract()[0] location = tr.xpath('./td[2]//text()').extract()[0] print name, location 

и приспособить его к вашим потребностям, чтобы заполнить ваш предмет (или предметы).

Как вы можете видеть, ваш браузер отображает дополнительный tbody в table который отсутствует, когда вы царапаете Scrapy. Это означает, что вам часто приходится судить о том, что вы видите в браузере.

Вот рабочий код

  import scrapy from scrapy.spider import Spider from scrapy.http import Request class CollegesItem(scrapy.Item): # define the fields for your item here like: name = scrapy.Field() location = scrapy.Field() class CollegesSpider(Spider): name = 'colleges' allowed_domains = ["4icu.org"] start_urls = ('http://www.4icu.org/in/',) def parse(self, response): for tr in response.xpath('//div[@class="section group"] [5]/div[@class="col span_2_of_2"][1]/table//tr'): if tr.xpath(".//td[@class='i']"): item = CollegesItem() item['name'] = tr.xpath('./td[1]/a/text()').extract()[0] item['location'] = tr.xpath('./td[2]//text()').extract()[0] yield item 

после запуска команды spider

  >>scrapy crawl colleges -o mait.json 

Ниже приведен фрагмент результатов:

  [[[[[[[{"name": "Indian Institute of Technology Bombay", "location": "Mumbai"}, {"name": "Indian Institute of Technology Madras", "location": "Chennai"}, {"name": "University of Delhi", "location": "Delhi"}, {"name": "Indian Institute of Technology Kanpur", "location": "Kanpur"}, {"name": "Anna University", "location": "Chennai"}, {"name": "Indian Institute of Technology Delhi", "location": "New Delhi"}, {"name": "Manipal University", "location": "Manipal ..."}, {"name": "Indian Institute of Technology Kharagpur", "location": "Kharagpur"}, {"name": "Indian Institute of Science", "location": "Bangalore"}, {"name": "Panjab University", "location": "Chandigarh"}, {"name": "National Institute of Technology, Tiruchirappalli", "location": "Tiruchirappalli"}, ......... 
  • Выдержка из динамического ответа JSON с помощью Scrapy
  • Использование одного патча Scrapy для нескольких веб-сайтов
  • Избегайте неправильных запросов из-за относительных URL-адресов
  • Как остановить всех пауков и двигатель сразу после выполнения условия в конвейере?
  • Любой способ сказать селену не выполнить js в какой-то момент?
  • Ошибка selexbox при проверке на селене
  • Как имитировать запрос xhr с помощью Scrapy при попытке обхода данных из веб-сайта на основе ajax?
  • Начало Scrapy Сканирование после входа в систему
  •  
    Interesting Posts for Van-Lav

    Динамическое создание меню в Tkinter. (лямбда-выражения?)

    Регулярное выражение для включения и исключения определенных IP-адресов

    Как получить доступ к 2 спискам за раз, глядя вперед с izip_longest? -Python

    Альтернативные способы просмотра python api

    Как получить IDLE, чтобы принять вставку символов Юникода?

    использовать генератор как вход для подпроцесса; Исключено исключение «I / O operation on closed file»

    Сортировка строк массива другим массивом в python

    Как нарисовать карту тепла в пандах с элементами, которые не встречаются в обеих колонках

    Преобразование вывода «yield from» в код Python 2.7

    Python 2.7 Подсчет количества позиций словаря с заданным значением

    Как добавить значения в существующий словарь-ключ Python

    Выбор полей из выхода JSON

    Заполнение Many2many поля (odoo 8)

    Эквивалент команды вставки R для вектора чисел в Python

    Объекты запроса Python не являются сериализуемыми

    Python - лучший язык программирования в мире.