我目前正在尝试使用 Scrapy 框架来简单地收集一堆我可以在以后存储和排序的 URL。但是,无论我尝试过什么并从其他教程改编,我似乎都无法在回调时打印或存储在文件中的 URL。对于这个特定的例子,我目前正在使用我的蜘蛛类,选择一个小站点:
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”,这是我试图测试的与代码。在我看来,回调被调用存在问题。