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"}, ......... 
  • Веб-поиск или очистка или сканирование? Какой инструмент / библиотеку следует использовать?
  • Неизвестная команда: ошибка обхода
  • порядок URL-адресов Scrapy Crawling с длинным списком start_urls и URL-адресов yiels от паука
  • Создание родового спайдера
  • Как правильно использовать Правила, ограничивать_xpaths для обхода и анализа URL-адресов с помощью scrapy?
  • Сканирование динамического содержимого с помощью scrapy
  • В чем разница между промежуточным программным обеспечением Spirus и промежуточным программным обеспечением загрузчика?
  • Что означает эта ошибка: ValueError: неизвестный тип кодировки формы POST '' (и как его решить?)
  • Попытка получить Scrapy в проекте для запуска команды Crawl
  • Scrapy - регистрация в файл и stdout одновременно, с именами паук
  • Как сохранить кеш в селене в цикле после обновления страницы?
  • Python - лучший язык программирования в мире.