私はSgmlLinkExtractorを動作させようとしています。治療SgmlLinkExtractorの質問
これは署名です:私はちょうどのでallow=()
を使用しています
SgmlLinkExtractor(allow=(), deny=(), allow_domains=(), deny_domains=(), restrict_xpaths(), tags=('a', 'area'), attrs=('href'), canonicalize=True, unique=True, process_value=None)
、私はそう
rules = (Rule(SgmlLinkExtractor(allow=("/aadler/",)), callback='parse'),)
を入力して、最初のURLが'http://www.whitecase.com/jacevedo/'
であると私はallow=('/aadler',)
に入ると予想していますその '/aadler/'
もスキャンされます。代わりにスパイダーが最初のURLをスキャンして閉じます。
[wcase] INFO: Domain opened
[wcase] DEBUG: Crawled </jacevedo/> (referer: <None>)
[wcase] INFO: Passed NuItem(school=[u'JD, ', u'Columbia Law School, Harlan Fiske Stone Scholar, Parker School Recognition of Achievement in International and Foreign Law, ', u'2005'])
[wcase] INFO: Closing domain (finished)
私はここで間違っていますか?
このスパイダーを仕上げるのを助けることができたScrapyを成功裏に使用した人は誰ですか?
ありがとうございました。
私は以下のクモのためのコードが含ま:
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from scrapy.item import Item
from Nu.items import NuItem
from urls import u
class NuSpider(CrawlSpider):
domain_name = "wcase"
start_urls = ['xxxxxx/jacevedo/']
rules = (Rule(SgmlLinkExtractor(allow=("/aadler/",)), callback='parse'),)
def parse(self, response):
hxs = HtmlXPathSelector(response)
item = NuItem()
item['school'] = hxs.select('//td[@class="mainColumnTDa"]').re('(?<=(JD,\s))(.*?)(\d+)')
return item
SPIDER = NuSpider()
注:SOように必要な初期のURLに置き換えて、私は1つの以上のURLを掲示させません。申し訳ありません。
を使用すると、この行を意味してください:。。 コールバックを= 'parse' – Zeynel
はい、あなたのCrawlSpiderルールでコールバック "parse"を使わないでください。 –
そして 'parse'メソッドを' parse_item'に変更してください – Eduardo