2014-02-03 2 views
0

Привет, мне нужна помощь со следующим кодом для навигации и получения данных с оставшихся страниц в ссылке, упомянутой в start_urls. Пожалуйста, помогитеscrapy переход на следующие страницы, перечисленные на первой странице обхода

class texashealthspider(CrawlSpider): 

    name="texashealth2" 
    allowed_domains=['www.texashealth.org'] 
    start_urls=['http://jobs.texashealth.org/search/'] 

    rules=(
     Rule(SgmlLinkExtractor(allow=("startrow=\d",)),callback="parse",follow=True), 
     ) 

    def parse(self, response): 
     hxs=HtmlXPathSelector(response) 
     titles=hxs.select('//tbody/tr/td') 
     items = [] 

    for titles in titles: 
     item=TexashealthItem() 
     item['title']=titles.select('span[@class="jobTitle"]/a/text()').extract() 
     item['link']=titles.select('span[@class="jobTitle"]/a/@href').extract() 
     item['shifttype']=titles.select('span[@class="jobShiftType"]/text()').extract() 
     item['location']=titles.select('span[@class="jobLocation"]/text()').extract() 
     items.append(item) 
    print items 
    return items 
+0

Что происходит? что не так? –

+0

Навигация не происходил на страницах, которые были на веб-странице. Scrapy сканировалась только через стартовую страницу и не ползала по остальным страницам. – Abhishek

ответ

1

снять ограничение в allowed_domains=['www.texashealth.org'], сделать его allowed_domains=['texashealth.org'] или allowed_domains=['jobs.texashealth.org'] - иначе не страницы не будет сканироваться

Кстати, рассмотреть вопрос об изменении названия функции, из документации:

Предупреждение

При написании правил пауза паука избегайте использования разбора в качестве обратного вызова, поскольку CrawlSpider использует метод parse для реализации своей логики. Поэтому, если вы переопределите метод анализа, сканер обхода больше не будет работать.

+1

Эй, решение, о котором вы говорили, хорошо работает. Но у меня есть еще одна проблема, которую я буду рад, если вы поможете. Сканирование происходило хорошо на оставшихся веб-страницах, но сканирование не происходило в упомянутом стартовом указателе. Считаете ли вы, что это имеет какое-то отношение к тому, как я определил xpaths? я получал только 661 запись вместо 686 записей, присутствующих на всех страницах вместе. – Abhishek

+0

попытайтесь изменить 'allow = (" startrow = \ d ",)' to 'allow = (" search/",)' также помните, что скрипинг не будет сканировать страницу дважды, возможно, не пропустить первую страницу, проверьте что ссылки уникальны –

+0

Привет, я пробовал это таким образом, но я все равно получаю тот же результат. Любые другие идеи? – Abhishek

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