Scrapy - как отправить форму запроса - PullRequest
1 голос
/ 14 апреля 2020

я новичок в поиске в сети, я пытаюсь отправить запрос с куки, но думаю, что я что-то не так делаю. я получаю куки со значением фильтра в области исследований. fisrt скажите мне, мне нужно скачать пакет экстракта для отправки куки в запросе. Во-вторых, мне нужно активировать что-то в настройках. Вот мой код, я француз, поэтому команда и веб-сайт французские

import scrapy
from ..items import DuproprioItem
from scrapy.http import FormRequest
#for remove encoding \xa0 = var.replace(u'\xa0', ' ')

# fonctionnement de scrapy avec multi pagination et liens multiples sur chaque page
# 1- on doit toujours cree la premiere fonction avec ne nom : 'parse'
# 2- dans cette fonction on commence par extraire les URL de tous les liens et on les renvoie dans une nouvelles fonction pour ensuite extraire les donner
# 3- on recupere les URL de toute les pages pour cree un pagination
# 4- on cree une pagination qui va permettre de recupere tous les fiches de tous les pages
# 4- on cree une nouvelle fonction qui extrait les donners des fiches

class BlogSpider(scrapy.Spider):
    name = 'remax_cookies'
    start_urls = [
        'https://www.remax-quebec.com/fr/infos/nous-joindre.rmx'
    ]
    def parse (self, response):
        yield scrapy.http.Request("https://www.remax-quebec.com/fr/recherche/residentielle/resultats.rmx", callback=self.parse_with_form,method='POST',cookies={
            'mode': 'criterias',
            'order':'prix_asc',
            'query': '',
            'categorie':'residentielle',
            'selectItemcategorie': 'residentielle',
            'minPrice':'100000',
            'selectItemminPrice': '100000',
            'maxPrice':'200000',
            'selectItemmaxPrice': '200000',
            'caracResi7':'_',
            'caracResi1': '_',
            'caracResi4':'_',
            'caracResi8': '_',
            'caracResi2':'_',
            'caracResi12': '_',
            'caracComm4':'_',
            'caracComm2': '_',
            'caracComm5':'_',
            'caracFarm3': '_',
            'caracFarm1':'_',
            'caracLand1': '_',
            'caracResi5':'_',
            'caracResi9': '_',
            'caracResi10':'_',
            'caracResi3': '_',
            'caracResi6':'_',
            'caracResi13': '_',
            'caracComm3':'_',
            'caracComm1': '_',
            'caracFarm2':'_',
            'uls': ''
        })

    def parse_with_form(self,response):
        #je vais chercher tous les liens sur la page a suivre pour extraire les fiches des maisons
        links_fiche = response.css('a.property-thumbnail::attr(href)').extract()
        #j'extract tous les liens avec une boucle
        for fiche in links_fiche:
            #je renvoie tous les viens vers une fonction scraper exterieur pour ensuite extraire les donner des fiches recu(parse_fiche)
            yield response.follow(fiche, self.parse_fiche)

    #je scrape les donner recu de
    def parse_fiche(self, response):
        items = DuproprioItem()
        price = response.css('h4.Caption__Price span').css('::text').get().strip()
        items['price'] = price
        yield items
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...