Я искал в Google и видел вопросы о переполнении стека, но ничего не работает. я прошел через
- из ошибки выбора импорта scrapy.selector
- также прочитал предложение
from scrapy.selector import HtmlXPathSelector, но ничего не помогло,
response.body и response.headers работают хорошо, однако response.selector и response.xpath() дают ошибка о том, что такого атрибута для объекта ответа не существует
Я тоже не могу импортировать Selector, потому что в иерархии каталогов scrapy нет Selector (не знаю почему)
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
class DmozSpider(BaseSpider):
name = "dmoz"
allowed_domains = ["dmoz.org"]
start_urls = [
"http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
"http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
]
def parse(self, response):
for sel in response.xpath('//ul/li'):
title = sel.xpath('a/text()').extract()
link = sel.xpath('a/@href').extract()
desc = sel.xpath('text()').extract()
print title, link, desc
Я использую SCRAPY 0.16 (работаю с Django Dynamic Scraper, поэтому не могу обновить, потому что он совместим только с этой версией)