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"}, ......... 
Interesting Posts

FOSS HTML в PDF в Python, .Net или командной строке?

Суммировать поля в sqlAlchemy

python: получить каталог на два уровня вверх

Извлечение названий страниц и вкладчиков из MediaWiki XML

Функция закрытия Python, потеряющая внешний доступ к переменной

Найти самую длинную повторяющуюся последовательность в строке

Обратный прокси-сервер, поддерживающий чистый веб-сервер python?

Связывание с библиотекой импорта Python в Visual Studio 2005

Как преобразовать типы возвратов neo4j в типы python

Какие инструменты NLP использовать для соответствия фразам, имеющим сходный смысл или семантику

Почему память не выделяется в систему после больших запросов (или серии запросов) в django?

Pandas читает csv без заголовка (который может быть там)

Python и GTK +: как создать объекты для сбора мусора?

Красивый суп, не получающий данные NBA.com

Python, запись с ошибкой Запись на 16000 Гц с использованием Pyaudio

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