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