Я написал несколько разных пауков для разных сайтов, которые выводят текст статей и URL-адреса. Пример:
import scrapy
import re
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from bs4 import BeautifulSoup
stop_words = set(stopwords.words("german"))
class FruehstueckSpider(scrapy.Spider):
name = "fruestueckerinnen"
def start_requests(self):
urls = [
'https://www.diefruehstueckerinnen.at/stadt/wien/',
]
urls += [urls[0] + 'page/' + str(i) + '/' for i in range(1,17)]
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
hrefs = response.css('div.text > a')
yield from response.follow_all(hrefs, callback = self.parse_attr)
def parse_attr(self, response):
yield {
'text': ' '.join([i for i in word_tokenize(re.sub(pattern='[^a-zA-Z_\-ÖöÜüÄäßèé]',string= BeautifulSoup(response.css('.content-inner.single-content').get(),"html.parser").find(class_="content-inner single-content").text , repl=' ')) if i not in stop_words and not re.match('[0-9]', i) and len(i) >1]),
'url': response.request.url,
}
Я хочу определить язык, на котором написан весь текст. Имеет ли смысл писать его под «text» и «url» как другое свойство? Я знаю, что есть функция с именем detect
(*1004*), но как ее использовать в этом случае?