Я отправляю адрес электронной почты с веб-сайта. чтобы сделать это, мне нужно извлечь каждую ссылку, которая есть в списке, а затем на этой странице извлечения я извлеку адрес электронной почты. Проблема в том, что кнопка на следующей странице содержит до 50 символов, но если я изменяю URL с помощью sla sh и введите 51. это также go новая страница. Я хочу использовать для l oop для ссылки на следующую страницу. В качестве примера я буду использовать для l oop от 1 до 999, это обновит URL следующей страницы. ниже мой code.it работает нормально, пока доступна кнопка next_page.
# -*- coding: utf-8 -*-
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
class BestMoviesSpider(CrawlSpider):
name = 'best_movies'
allowed_domains = ['dastelefonbuch.de']
user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'
def start_requests(self):
yield scrapy.Request(url='https://www.dastelefonbuch.de/Suche/Textilien%20Gmbh',
headers={
'User-Agent': self.user_agent
})
rules = (
Rule(LinkExtractor(
restrict_xpaths="//a[@class=' name']"),
callback='parse_item', follow=True,
process_request='set_user_agent'),
Rule(LinkExtractor(
restrict_xpaths="//a[@class='nextLink next'][2]"), follow=True,
process_request='set_user_agent')
)
def set_user_agent(self, request):
request.headers['User-Agent'] = self.user_agent
return request
def parse_item(self, response):
yield {
'email': response.xpath(
"//a[starts-with(@href,'mailto')]/@href").get(),
}