Scrapy FormRequest для нескольких кнопок - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь получить вторую кнопку из формы, но, похоже, не могу получить правильный запрос формы.

Вот код HTML для формы:

<form action="/search/misc/set_serp_view" method="POST" class="btn-group">
        <button class="btn btn-white active" type="submit" name="serp_view" value="serp-cards">
            <i class="fa fa-usd"></i> Prices
        </button>
        <button class="btn btn-white " type="submit" name="serp_view" value="serp-grid">
            <i class="fa fa-table"></i> Specs
        </button>
    </form>

Я использовал этот код,

class ProductSpider(scrapy.Spider):
    name='nameCode'
    start_urls = ['https://octopart.com/electronic-parts/integrated-circuits-ics' ]

    def parse(self,response):
        return FormRequest.from_response(response, formxpath="//form[@class='btn-group']/button[@value='serp-grid']",callback = self.scrape_pages)

    def scrape_pages(self,response):
        open_in_browser(response)        

, но он выбирает serp-карт по умолчанию.

1 Ответ

1 голос
/ 17 марта 2019

Это сработало как шарм

    def parse(self,response):
        return FormRequest.from_response(response, formxpath="//form[@class='btn-group']", clickdata={"value":"serp-grid"},callback = self.scrape_pages)
...