SgmlLinkExtractor'ın çalışmasını sağlamaya çalışıyorum. BenScrapy SgmlLinkExtractor soru
rules = (Rule(SgmlLinkExtractor(allow=("/aadler/",)), callback='parse'),)
Yani, ilk url 'http://www.whitecase.com/jacevedo/'
ve ben allow=('/aadler',)
giren ve beklemek am girmek
SgmlLinkExtractor(allow=(), deny=(), allow_domains=(), deny_domains=(), restrict_xpaths(), tags=('a', 'area'), attrs=('href'), canonicalize=True, unique=True, process_value=None)
Sadece Yani allow=()
kullanıyorum:
Bu
imzadır Bu'/aadler/'
, taranacaktır. Ama bunun yerine, örümcek ilk url tarar ve sonra kapanır:
[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)
yanlış burada ne yapıyorum? Bu örümceği bitirmemde bana yardımcı olabilecek, Scrapy'i başarıyla kullanan herkes var mı?
yardım için teşekkür ederiz.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()
Not:
aşağıda örümcek için kod içeren SO beni çok gerekli başlangıç url yerine 1'den fazla url sonrası izin vermez. Bunun için üzgünüm.
bu çizgiyi ifade ediyor.:. geri arama = 'parse' – Zeynel
Evet, "ayrıştırmayı" CrawlSpider Kuralı'nda kullanmayın. –
Ve parse yöntemini "parse_item" olarak değiştirin. – Eduardo