Я пытаюсь написать сканер, который идет на веб-сайт и ищет список ключевых слов с max_Depth, равным 2. Но предполагается, что сборщик остановится, как только какое-либо ключевое слово появится на любой странице, проблема, с которой я сталкиваюсьпрямо сейчас сканер не останавливается, когда впервые видит какое-либо из ключевых слов.
Даже после попытки выполнить раннюю команду возврата, команду разрыва и команды CloseSpider и даже команды выхода python.
Мой класс сканера:
class WebsiteSpider(CrawlSpider):
name = "webcrawler"
allowed_domains = ["www.roomtoread.org"]
start_urls = ["https://"+"www.roomtoread.org"]
rules = [Rule(LinkExtractor(), follow=True, callback="check_buzzwords")]
crawl_count = 0
words_found = 0
def check_buzzwords(self, response):
self.__class__.crawl_count += 1
crawl_count = self.__class__.crawl_count
wordlist = [
"sfdc",
"pardot",
"Web-to-Lead",
"salesforce"
]
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:
if self.__class__.words_found==0:
self.__class__.words_found += 1
print(word + "," + url + ";")
STOP!
return Item()
def _requests_to_follow(self, response):
if getattr(response, "encoding", None) != None:
return CrawlSpider._requests_to_follow(self, response)
else:
return []
Я хочу, чтобы оностановить выполнение, когда if not ok:
равно True
.