У меня есть Python Web, использующий Scrapy Framework. Я пытаюсь получить выходные данные в двух отдельных файлах: 1) данные веб-сайта (т. Е. Веб-сайт 1 ссылается на веб-сайт 2) и 2) ключевые слова, которые соответствуют моему списку ключевых слов, которые ищет сканер. У меня возникли проблемы при получении выходных данных. Работа - мне удалось получить вывод для (1) без включения компонента ключевого слова, и я вижу, что веб-сканер работает - веб-сайты и соответствующие ключевые слова перечислены в командной строке cmd. Но я не могу их сохранить как отдельные файлы CSV.
def check_buzzwords(self, response):
self.__class__.crawl_count += 1
crawl_count = self.__class__.crawl_count
wordlist = [
"Keyword1",
"Keyword2"
]
url = response.url
contenttype = response.headers.get("content-type", "").decode('utf-8').lower()
data = response.body.decode('utf-8')
for word in wordlist:
substrings = find_all_substrings(data, word)
for pos in substrings:
ok = False
if not ok:
self.__class__.words_found += 1
print(word + ";" + url + ";")
return Item()
А для запуска паука - это команда, которую я использую.
scrapy crawl examplespider -o examplesemanticlevel1.csv
Возможно ли иметь два отдельных выходных файла из этой модели? А если нет, есть идеи, как объединить 2 файла, которые мне нужны, в 1?
The exact output that I need is as follows:
CSV File 1:
starting website | Target website
website1 | website2
Website1 | Website2
Website2 | website3
CSV File 2:
Keyword | Webpage
Keyword1 | Webpage1
Keyword2 | Webpage1
Keyword2 | Webpage2
Keyword3 | Webpage3
Я нашел какой-то код в Интернете, но я не уверен, как его встроить. Будет ли что-то подобное использоваться?
def spider_closed(self):
with open("outputfile.csv","w", newline="") as f:
writer = csv.DictWriter(f,['Name','Year'])
writer.writeheader()
for data in self.itemlist:
writer.writerow(data)
def linkage_output_file (self, response):
df = pandas.read_csv('websitesemanticlevel2.csv',
url = 'URL',
word = 'Keyword',
header=0,
names=['url','keyword'])
df.to_csv('websitesemanticlevel2.csv')