2013-08-28 4 views
1

привет им пытаются использовать crawlspider и я создал мой собственный запрещающих правилSCRAPY паук перепускной отрицать мои правила

class MySpider(CrawlSpider): 
    name = "craigs" 
    allowed_domains = ["careers-cooperhealth.icims.com"] 
    start_urls = ["careers-cooperhealth.icims.com"] 
    d= [0-9] 
    path_deny_base = [ '.(login)', '.(intro)', '(candidate)', '(referral)', '(reminder)', '(/search)',] 
    rules = (Rule (SgmlLinkExtractor(deny = path_deny_base, 
            allow=('careers-cooperhealth.icims.com/jobs/…;*')), 
            callback="parse_items", 
            follow= True),) 

еще мой паук для обхода страниц, как https://careers-cooperhealth.icims.com/jobs/22660/registered-nurse-prn/login где Логин не должны сканироваться, что здесь проблема?

+0

Опубликовать весь ваш класс пауков. – Blender

+0

класс MySpider (CrawlSpider): Name = "Craigs" allowed_domains = [ "careers-cooperhealth.icims.com"] start_urls = [ "https://careers-cooperhealth.icims.com"] д = [ 0-9] path_deny_base = [ '(Логин)', '(интро)', '(кандидат)', '(направление)', '(напоминание)', «(/ поиск) ',] rules = (правило (SgmlLinkExtractor (deny = path_deny_base, allow = (' https://careers-cooperhealth.icims.com/jobs/ '), restrict_xpaths = (' * ')) , callback = «parse_items», follow = True), ) – chano

+0

Отредактируйте это в свой вопрос. Трудно читать, когда все в одной строке. – Blender

ответ

2

Просто изменить его таким образом (без точек и скобки):

deny = ['login', 'intro', 'candidate', 'referral', 'reminder', 'search'] 
allow = ['jobs'] 

rules = (Rule (SgmlLinkExtractor(deny = deny, 
           allow=allow, 
           restrict_xpaths=('*')), 
           callback="parse_items", 
           follow= True),) 

Это будет означать не login или intro или т.п. в извлеченном ссылку, только извлекаться ссылки, которые имеют jobs в нем.

Вот весь код паук, который ползет по ссылке https://careers-cooperhealth.icims.com/jobs/intro?hashed=0 и печатает 'YAHOO!':

from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor 
from scrapy.contrib.spiders import CrawlSpider, Rule 


class MySpider(CrawlSpider): 
    name = "craigs" 
    allowed_domains = ["careers-cooperhealth.icims.com"] 
    start_urls = ["https://careers-cooperhealth.icims.com"] 

    deny = ['login', 'intro', 'candidate', 'referral', 'reminder', 'search'] 
    allow = ['jobs'] 

    rules = (Rule (SgmlLinkExtractor(deny = deny, 
            allow=allow, 
            restrict_xpaths=('*')), 
            callback="parse_items", 
            follow= True),) 

    def parse_items(self, response): 
     print "YAHOO!" 

Надежда, что помогает.

+0

Я попробовал это, и теперь мой паук больше не ползает – chano

+0

Проверено код паука, который я предоставил, - он работает. – alecxe

+0

Спасибо! это должно сделать это – chano

Смежные вопросы