私は現在、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」という Web ページに出くわしても、何も出力しません。でコード化します。コールバックの呼び出しに問題があるようです。