刮擦面包屑链接与scrapy递归

时间:2015-03-25 10:21:03

标签: python scrapy breadcrumbs

我是蟒蛇和scrapy的新手。对于大学项目,我需要在autoscout24.de域(德语)上刮取汽车分类广告。

以下是一个示例网站:http://ww3.autoscout24.de/classified/268487991?asrc=fa|as&testvariant=articles_t20&tierlayer=fa

我希望CrawlSpider以递归方式抓取“下一个提议”('nächstesAngebot'),但似乎无法从痕迹中提取链接。该网站的有趣部分应该是:

<div class="floatRight">
                    <span class="linkInvisible">
                        <span class="floatLeft">‹</span>
                        <span class="floatLeft marginLeftXS">
                            vorheriges Angebot
                        </span>
                    </span>


                <p class="floatLeft marginLeftXS">|</p>   


                    <a id="breadCrumbNextOffer" ng-click="breadCrumb.nextOffer('http://ww3.autoscout24.de/classified/266709231')">
                        <span class="floatLeft marginLeftXS">
                            nächstes Angebot
                        </span>
                        <p class="floatLeft marginLeftXS">›</p>
                    </a>

            </div>

我想获得breadCrumb.nextOffer(...)

中的链接

我试过这个:

import scrapy
from scrapy.contrib.linkextractors import LinkExtractor
from scrapy.contrib.spiders import CrawlSpider, Rule

from autocrawler.items import AutocrawlerItem


class AutocrawlerRecursiveSpider(CrawlSpider):
    name = 'autocrawler_recursive'
    allowed_domains = ['autoscout24.de']
    start_urls = ['http://ww3.autoscout24.de/classified/268348256asrc=pl|as&testvariant=articles_t20&tierlayer=pl']

rules = (
    Rule(LinkExtractor(allow=(r'/^http:\/\/ww3.autoscout24.de\/classified\/\w+$/'), restrict_xpaths=('//*[@id="ng-app"]/div[2]/div/div[1]/div')),  callback='parse_item', follow=True),
)

def parse_item(self, response):
    item = AutocrawlerItem()
    item['brand'] = response.xpath('//*[@id="detailsContent"]/div[1]/h1/text()').extract()
    item['price'] = response.xpath('//*[@id="detailsContent"]/div[2]/div/div[2]/div/div[1]/text()').extract()
    return item

但这只会刮掉start_url,似乎无法找到下一个链接。

我会非常感谢任何意见。 :)

0 个答案:

没有答案