Scrapy Debug полз 200 и ничего не вернуть - PullRequest
0 голосов
/ 20 ноября 2018

Я работаю над проектом сканирования и пытаюсь получить каждую ссылку одобрения группы.

Мой код выглядит следующим образом:

my code

Возвращеноничего такого.Однако, если я добавлю каждый URL-адрес группы в start_url, он будет работать хорошо.Но мне будет трудно поместить все URL-адреса, которые я хочу вручную, в поле start_url, так как я даже не уверен, сколько их есть ...

Журнал показывается:

log

Кто-нибудь может помочь?Заранее спасибо!

1 Ответ

0 голосов
/ 21 ноября 2018

Выражение вашего ограничения xpath выглядит неправильно.

Вместо этого можно использовать параметр allow, это гораздо проще:

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


class MySpider(CrawlSpider):

    name = 'celebrityendorsers.com'
    start_urls = ['https://celebrityendorsers.com/endorsement/']

    rules = (
        Rule(LinkExtractor('/endorsements/'), callback='parse_url_contents'),
    )

    def parse_url_contents(self, response):
        pass

Это выходной журнал:

2018-11-22 02:01:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://celebrityendorsers.com/endorsements/playtex-wipes/> (referer: https://celebrityendorsers.com/endorsement/)
2018-11-22 02:01:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://celebrityendorsers.com/endorsements/plenish-cleanse/> (referer: https://celebrityendorsers.com/endorsement/)
2018-11-22 02:01:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://celebrityendorsers.com/endorsements/play-date-by-sarah-beckham/> (referer: https://celebrityendorsers.com/endorsement/)
2018-11-22 02:01:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://celebrityendorsers.com/endorsements/playstation-3/> (referer: https://celebrityendorsers.com/endorsement/)
2018-11-22 02:01:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://celebrityendorsers.com/endorsements/playmg/> (referer: https://celebrityendorsers.com/endorsement/)
2018-11-22 02:01:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://celebrityendorsers.com/endorsements/playsight/> (referer: https://celebrityendorsers.com/endorsement/)
2018-11-22 02:01:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://celebrityendorsers.com/endorsements/play-cloths/> (referer: https://celebrityendorsers.com/endorsement/)
2018-11-22 02:01:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://celebrityendorsers.com/endorsements/platinum-league-trading-cards/> (referer: https://celebrityendorsers.com/endorsement/)
2018-11-22 02:01:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://celebrityendorsers.com/endorsements/playstation/> (referer: https://celebrityendorsers.com/endorsement/)
2018-11-22 02:01:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET https://celebrityendorsers.com/endorsements/platinum-group/> (referer: https://celebrityendorsers.com/endorsement/)

Если вы действительно хотите использовать xpath, попробуйте удалить [*].

Комментированный вами xpath выглядит правильно, но обратный вызов неверен, вы не можете использовать обратный вызов parse сCrawlSpider.

...