В настоящее время я пытаюсь работать с инфраструктурой Scrapy, чтобы просто собрать кучу URL-адресов, которые я могу сохранить и отсортировать позже. Тем не менее, я не могу заставить URL-адреса печатать или храниться в файле при обратном вызове, независимо от того, что я пробовал и адаптировал из других учебных пособий. Вот в настоящее время, что я иду с моим классом паука для этого конкретного примера, выбирая небольшой сайт:Как заставить Scrapy правильно выполнить обратный вызов?
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from crawler.items import CrawlerItem
from scrapy import log
class CrawlerSpider(CrawlSpider):
name = 'crawler'
allowed_domains = [
"glauberkotaki.com"
]
start_urls = [
"http://www.glauberkotaki.com"
]
rules = (
Rule(SgmlLinkExtractor(allow=(), deny=('about.html'))),
Rule(SgmlLinkExtractor(allow=('about.html')), callback='parseLink', follow="yes"),
)
def parseLink(self, response):
x = HtmlXPathSelector(response)
print(response.url)
print("\n")
Он ползет все страницы этого сайта штрафа, но не печатать ничего на всех , даже когда он попадает на веб-страницу «www.glauberkotaki.com/about.html», с которой я пытался проверить код. Мне кажется, что существует проблема с вызовом обратного вызова.
Спасибо за ответ. К сожалению, хотя, просто опустив первое правило, это не работает. Теперь он просматривает только основную страницу и страницу about.html, но обратный вызов все еще не выдаётся, потому что я не вижу ничего напечатанного. – coltonoscopy