Как использовать Scider's Spider и LinkExtractor в скрипте Python? - PullRequest
0 голосов
/ 16 июня 2019

Я нашел несколько ответов на тему о том, как извлечь все доступные ссылки с любого сайта, и все они были о модуле scrapy. ТАКЖЕ скопировал один из примеров кода:

from scrapy import Spider
from scrapy.linkextractors import LinkExtractor

class MySpider(Spider):
    name = 'myspider'
    start_urls = ['http://webpage.com']

    def parse(self, response):
        le = LinkExtractor()
        for link in le.extract_links(response):
            print (link)

Но мне нужно запустить его и получить простой список всех страниц HTML на python, чтобы получить от них некоторую информацию, используя urllib2 и bs4. Как правильно запустить этот класс, чтобы получить этот список?

1 Ответ

1 голос
/ 17 июня 2019

scrapy - это отличный инструмент для скрапинга сайтов, но это больше, чем просто фрагмент, как вы написали.То, что вы разместили, является определением паука.Если он встроен в проект scrapy, вы можете запустить этого паука, например, в своем терминале с scrapy crawl myspider.

Тогда ваш паук посетит http://webpage.com, извлечет все его ссылки и рекурсивно последует за ними.Каждый URL будет распечатан, но это все.Для хранения этих ссылок вы можете создавать так называемые элементы, которые затем можно экспортировать с помощью определенного конвейера элементов.Слишком сложная вещь, чтобы опубликовать ее в одном ответе.Суть в том, что да, scrapy - это мощный инструмент, который вы можете использовать для извлечения ссылок, и лучше всего начать с учебников по scrapy: https://docs.scrapy.org/en/latest/intro/tutorial.html

к счастью, документация по scrapy хороша:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...