Проект Scrapers: Spider User_Agents

Олег Суворинов Вт 14 января 2025 09:11 1 мин

Список актуальных и популярных User-Agent для Desktop устройств (Linux, Windows, macOS, Mac OS X). Список конечно не полный, да он и создавался для использования через Requests в моих проектах. Данного количества вполне достаточно. Какие были нюансы при написании данного spider’a:

  1. Необходимо было отключить Feed exports
  2. Организовать сохранение данных, работы spider’a через Item Pipeline, в текстовый файл

Часть настроек для UserAgentsSpider:

    class UserAgentsSpider(BaseSpider):

        custom_settings = {
            "EXTENSIONS": {
                "scrapy.extensions.feedexport.FeedExporter": None,
            },
            "ITEM_PIPELINES": {
                "scrapers.pipelines.UserAgentPipeline": 300  # noqa
            },
        }

Item Pipeline для UserAgentsSpider:

    class UserAgentPipeline:
        def open_spider(self, spider):
            data_file = spider.data_dir / f"{spider.file_items_basename}.{spider.file_items_ext}" # noqa
            self.file = open(data_file, "w")

        def close_spider(self, spider):
            self.file.close()

        def process_item(self, item, spider):
            line = item["user_agent"] + "\n"
            self.file.write(line)
            return item

Где spider.data_dir, spider.file_items_basename, spider.file_items_ext свойства класса BaseSpider.


Read more:

Related posts: