Python scrapy没有做任何事情

时间:2015-12-08 16:11:41

标签: python scrapy

我已经开始学习Python,了,到目前为止我很喜欢它。我一直在寻找不同的图书馆。所以我偶然发现了Scrapy并认为我会尝试一下。我希望从daylerees颜色方案(来自github)获取所有链接并将它们转储到某处以便快速访问。

所以我这样做了:

import scrapy


class ThemeItem(scrapy.Item):
    name = scrapy.Field()
    link = scrapy.Field()


class ThemeSpider(scrapy.Spider):
    name = 'themespider'
    start_urls = ['https://github.com/daylerees/colour-schemes/tree/master/jetbrains']

    def parse(self, response):
        for sel in response.xpath('//a[@class="js-directory-link"]'):
            url = ThemeItem()
            url['name'] = sel.xpath('text()')
            url['link'] = sel.xpath('@href')

            yield url

它根本没有输出任何东西。任何指导都将非常感谢。

我正在运行它: scrapy runspider spider.py

1 个答案:

答案 0 :(得分:1)

包含js-directory-link类的元素也有其他类,例如:

<a href="/daylerees/colour-schemes/tree/master/jetbrains/contrast" class="js-directory-link js-navigation-open" id="c8fd07f040a8f2dc85f5b2d3804ea3db-6b332f6820ec47d7ade641dbf72108b025b10440" title="contrast">contrast</a>

您需要通过contains()使用部分类属性匹配:

//a[contains(@class, "js-directory-link")]

或者,您可以使用CSS selectors

for sel in response.css('a.js-directory-link'):

虽然我真的会考虑改用github API