Итак, начнем с: «Я новичок ie». Уже пару дней тестирую скрап, и я пытаюсь сделать то, что, по моему мнению, должно быть простым процессом, но я просто не могу понять ... Моя идея:
- Go На страницу с постраничным содержимым
- Получить все URL-адреса для отдельных элементов на каждой постраничной странице
- Go в каждом отдельном URL-адресе и удалить несколько конфет:)
Теперь я был в состоянии обрабатывать до той части, где я получаю все отдельные URL-адреса, а именно:
import scrapy
class SomeSpider(scrapy.Spider):
name= 'vinos'
start_urls = [
'https://www.somesite.com/es'
]
def parse(self,response):
for vino in response.css('div.product-container'):
yield {
'url' : vino.css("a.product-name::attr(href)").get()
}
next_pageVar = response.css(".pagination_next a::attr(href)").get()
print(next_pageVar)
if next_pageVar is not None:
next_page = 'https://www.somesite.com' + next_pageVar
next_page = response.urljoin(next_page)
yield scrapy.Request(next_page, callback=self.parse)
Итак, с этим, если я запускаю этот скрипт, я получаю хороший CSV с все отдельные URL
scrapy crawl vinos -o urls.csv
Дело в том, что я не могу понять, как go внутри каждого отдельного элемента и получить данные, которые я хочу, что на самом деле я хочу экспортировать как CSV ( также, CSV, разделенный символом «<», поскольку «,» мешает некоторым полям). </p>
Как только я попадаю на отдельную страницу, я хочу получить следующее:
from some.items import SomeItem
item = SomeItem()
item["title"] = response.css("h1::text").get()
item["recommendation"] = response.css(".recommendation text").get()
temperature = response.css(".temperature::text").get()
if temperature is not None:
item["temperature"] = temperature
Как уже было сказано, я хотел бы иметь возможность экспортировать все предметы, собранные для каждого в отдельную страницу в CSV-файл с разделителем "<". </p>
Есть идеи, как сделать эти две вещи?
Большое спасибо!