Невозможно получить заголовок разных списков с веб-страницы с помощью scrapy - PullRequest
3 голосов
/ 12 июля 2020

Я пытаюсь разобрать заголовки различных списков с этой веб-страницы . Заголовки не являются динамическими c, поскольку они доступны в исходном коде страницы. Однако для захвата заголовков необходимо в первую очередь отправлять файлы cookie. Я попытался очистить заголовки списков следующим способом, но, похоже, это не сработало.

Моя попытка на данный момент:

import scrapy
from scrapy.crawler import CrawlerProcess

class ControllerSpider(scrapy.Spider):
    name = 'controller'
    start_urls = [
        'https://www.controller.com/listings/aircraft/for-sale/list?SortOrder=23&scf=False&page=1'
    ]

    def start_requests(self):
        for i,url in enumerate(self.start_urls):
            yield scrapy.Request(url,meta={'cookiejar': i},callback=self.parse)
    
    def parse(self,response):
        for item in response.css(".listing-name > a[href]::text").getall():
            yield {"title":item}

if __name__ == "__main__":
    c = CrawlerProcess({
        'USER_AGENT': 'Mozilla/5.0 (Windows NT 6.1; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
    })
    c.crawl(ControllerSpider)
    c.start()

Как я могу получить названия различных списков с этой веб-страницы, используя файлы cookie?

PS Я не хочу sh жестко кодировать файлы cookie.

1 Ответ

0 голосов
/ 17 июля 2020

Если вы используете расширение браузера для парсинга, вам не нужно вручную обрабатывать файлы cookie. Посетите сайт, как правило, таким образом получая файлы cookie, а затем очищайте его.

https://github.com/get-set-fetch/extension - это расширение с открытым исходным кодом, которое может справиться с вашим сценарием, просто указав селекторы CSS для навигации по ссылкам и содержимого

Я немного поигрался с сайтом и создал для вас конфигурацию парсинга, содержащую необходимые CSS селекторы для навигации (следующая страница, страница сведений о самолете) и парсинга (год, модель, производитель, цена)

"eLtI4gnapZQ9b8MgEIb / CuoQtQO4SZolktWta4Z2zELwYSNhjI5z3P77AmrS2ulH0gwI7OM9ne7eh + PVVH9qPKBQXXsCBRmywKSrWMxopGWub3eAR1YaIh / WRTEMg1CjVIU1gYyrQyENKpSaCt0hD9JCDj0 + d0gbrADLxXIWlC6fkhdmPjannI8ZrIF4iEsnYPghEA8oPfBoUTKKf3r4Gl7v / wPoVPcDAlPXj5BQjXQ1vHw1djblxgNmzsP0 + Tjb62JHjsfmt + kgHLxSRD5vqdlbV5m9 + JgWT7mZjPHD1PKdES2rKSzflnUuHKLl1Hk + XwmlmcBuWDtquGqMrW4Xd0wED4rvpe3TO / UGErfuN8lyKmml63Wsp0f4Q / pwIu3ihKLGo1Fw / Ju / bi4g9TIy3wGjz0AS"

1011 * Внутри расширение делать: новый проект > config ha sh> вставьте выше ha sh (без цитаты)> сохранить, очистить, просмотреть результаты> экспортировать как csv.

Каждая строка csv будет иметь год, производителя, модель, цену. Я установил некоторые ограничения, поэтому будут очищены только первые 4 страницы результатов, но вы можете отключить это, установив соответствующее значение на -1.

Отказ от ответственности: я являюсь автором расширения.

...