Вечер добрый,
Пытаюсь распарсить данную страницу
vulners.com в качестве параметра передаю CVE(например:vulners.com/cve/CVE-2017-0147), дальше на данной странице пытаюсь получить все содержимое DIV контейнера "vulners-card-text", с python и с scrapy я столкнулся первый раз, по примерам в сети собрал данный скрипт:
#!/usr/bin/python
import scrapy
from scrapy.crawler import CrawlerProcess
"""EX:CVE-2017-0147"""
class PythonEventsSpider(scrapy.Spider):
name = 'pythoneventsspider'
start_urls = ['https://vulners.com/cve/'+sys.argv[1], ]
events_dict = {}
def parse(self, response):
i = 0
for events in response.xpath('//div[contains(@class, "vulners-item-full")]'):
event_type = events.xpath('.//div[contains(@class, "vulners-item-description")]').extract_first()
event_title = events.xpath('.//div[contains(@class, "vulners-item-cpe")]').extract_first()
event_desc = events.xpath('.//div[contains(@class, "vulners-item-references")]').extract_first()
events_dict[i] = [event_type, event_title, event_desc]
i += 1
if __name__ == "__main__":
process = CrawlerProcess({'LOG_LEVEL': 'ERROR'})
process.crawl(PythonEventsSpider)
spider = next(iter(process.crawlers)).spider
process.start()
Но при запуске (./pars.py CVE-2017-0147) вижу:
Traceback (most recent call last):
File "./pars.py", line 6, in
class PythonEventsSpider(scrapy.Spider):
File "./pars.py", line 8, in PythonEventsSpider
start_urls = ['https://vulners.com/cve/'+sys.argv[1], ]
NameError: name 'sys' is not defined
Цель: В результате хочу получить html файл с содержимым контейнера ...