コード例 #1
0
ファイル: item_amazon.py プロジェクト: Alkemic/scrapper
class AmazonEntry(scrapper.Item):
    title = scrapper.Field(
        "//*[@id='productTitle']/text()",
        lambda value, content, response: value.strip() if value else None,
    )
    price = scrapper.Field(
        "//span[@class='a-color-price']/text()",
        lambda value, _, __: value.strip() if value else None,
    )
    img = scrapper.Field(
        '//div[@id="imgTagWrapperId"]/img/@data-a-dynamic-image',
        get_image,
    )
コード例 #2
0
 class TestCrawlerClass(scrapper.Item):
     title = scrapper.Field('//div[@class="wrap"]/h1/text()')
     author = scrapper.Field('//div[@class="wrap"]/a/text()')
     author_email = scrapper.Field(
         '//div[@class="wrap"]/a/@href',
         lambda value, content, response: value.replace(
             'emialto:',
             '',
         ),
     )
     content = scrapper.Field(
         '//div[@class="wrap"]/div[@class="content"]/text()',
         lambda value, content, response: value.strip(),
     )
コード例 #3
0
    def test_basic_initialisation(self):
        field = scrapper.Field('h1')

        self.assertEqual(field.selector, 'h1')
        self.assertEqual(field.callback, None)
        self.assertEqual(field._value, None)
        self.assertEqual(field.__get__(None), None)
コード例 #4
0
 class TestCrawlerClass(scrapper.Item):
     title = scrapper.Field('//h1/text()')
コード例 #5
0
 def test_repr(self):
     field = scrapper.Field('//h1/text()')
     self.assertEqual('Field(\'//h1/text()\', None)', repr(field))
コード例 #6
0
    def test_returned_value_must_be_exact(self):
        field = scrapper.Field('//h1/text()')
        field._value = 1234

        self.assertEqual(str(field.__get__(None)), '1234')
        self.assertEqual(type(field.__get__(None)), int)
コード例 #7
0
 def test_raises_exception(self):
     with self.assertRaises(ValueError):
         scrapper.Field()
コード例 #8
0
 class TestClassItem(scrapper.Item):
     name = scrapper.Field('//h1/text()')
コード例 #9
0
ファイル: item_set_wykop.py プロジェクト: Alkemic/scrapper
class WykopItem(scrapper.Item):
    title = scrapper.Field(
        '//div[contains(@class, "lcontrast")]/h2/a/text()',
        lambda value, content, response: value.strip() if value else None,
    )
    link = scrapper.Field('//div[contains(@class, "lcontrast")]/h2/a/@href')
コード例 #10
0
class RedditEntry(scrapper.Item):
    title = scrapper.Field(
        '//p[@class="title"]/a/text()',
        lambda value, content, response: value.strip() if value else None,
    )
    link = scrapper.Field('//p[@class="title"]/a/@href')
コード例 #11
0
ファイル: multi_item_imgur.py プロジェクト: Alkemic/scrapper
class ImgurEntry(scrapper.Item):
    link = scrapper.Field('.//a[@class="image-list-link"]/@href')

    description = scrapper.Field('.//div[@class="hover"]/p/text()')