Я написал простой код для веб-сканера, используя scrapy. Код моего теста может быть найден ниже.
import scrapy
class ExtractUrls(scrapy.Spider):
name = "extract"
# request function
def start_requests(self):
urls = [ 'https://www.iitdh.ac.in/events.php', ]
for url in urls:
yield scrapy.Request(url = url, callback = self.parse)
# Parse function
def parse(self, response):
# Extra feature to get title
title = response.css('title::text').extract_first()
# Get anchor tags
links = response.css('a::attr(href)').extract()
for link in links:
yield
{
'title': title,
'links': link
}
items.py
import scrapy
class GfgItem(scrapy.Item):
# define the fields for your item here like:
name = scrapy.Field()
title = scrapy.Field()
pass
settings.py
BOT_NAME = 'gfg'
SPIDER_MODULES = ['gfg.spiders']
NEWSPIDER_MODULE = 'gfg.spiders'
# Crawl responsibly by identifying yourself (and your website) on the user-agent
#USER_AGENT = 'gfg (+http://www.yourdomain.com)'
# Obey robots.txt rules
ROBOTSTXT_OBEY = True
Когда я запускаю $scrapy crawl extract -o links.json -t json
,Я хочу, чтобы вывод был сохранен в файле links.json
, но мой файл links.json
остается пустым. Почему?