Ich versuche, nächste Seite Links mit crawlspider zu crawlen, aber ich bin nicht in der Lage, jedes Ergebnis zu erhalten, wenn ich Parse-Funktion zu etwas anderem ändern. Meine Regel funktioniert nicht. Ich kann nur die aktuelle Seite mit der Parse-Funktion abrufen. Wo gehe ich falsch vor?Scrapy crawlspider rule funktioniert nicht für die nächsten Seiten
Das ist meine naukri_spider.py Datei
import scrapy
from scrapy import Spider
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from naukri.items import NaukriItem
class NaukriSpider(Spider):
name = "naukri"
allowed_domains = ["naukri.com"]
start_urls = ["http://www.naukri.com/information-technology-jobs?xt=catsrch&qf[]=24"]
rules = (
Rule(SgmlLinkExtractor(allow=(), restrict_xpaths=('//div[@class="pagination"]/a/button[@class="grayBtn"]',)), callback="parse", follow= True),
)
def parse(self,response):
for sel in response.xpath('//*[@class="content"]'):
item = NaukriItem()
item['title'] = sel.xpath('span[@class="desig"]/text()').extract()
item['location'] = sel.xpath('span[@class="loc"]/span/text()').extract()
item['organization'] = sel.xpath('span[@class="org"]/text()').extract()
yield item
Kontrolle der 'warning': http://doc.scrapy.org/en/latest/topics/spiders.html#crawling-rules – eLRuLL