FormRequest с использованием scrapy для имитации POST не работает - PullRequest
0 голосов
/ 16 марта 2019

Я пытаюсь получить данные о спецификациях продуктов на этом сайте . По умолчанию используется вид Цены , но я хочу перейти к представлению Характеристики . Поскольку кнопка выполняет запрос POST, я попытался смоделировать его с помощью FormRequest, но ничего не происходит.

Вот код, который я использую:

import scrapy
from scrapy import Spider
from scrapy.http import FormRequest
from scrapy.utils.response import open_in_browser
from Demo.items import DemoItem, Distributor

class ProductSpider(scrapy.Spider):
    name='nameCode'

    start_urls = ['https://octopart.com/electronic-parts/integrated-circuits-ics' ]

    def parse(self,response):
        token = response.xpath('//button[@name="serp-view"]/@value').extract_first()
        return FormRequest.from_response(response, url="https://octopart.com/electronic-parts/integrated-circuits-ics", formdata={'serp-view':token}, callback=self.scrape_pages)

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

Выход:

[scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
[scrapy.core.engine] DEBUG: Crawled (200) <GET https://octopart.com/electronic-parts/integrated-circuits-ics> (referer: None)
[scrapy.core.engine] DEBUG: Crawled (200) <GET https://octopart.com/electronic-parts/integrated-circuits-ics?q=> (referer: https://octopart.com/electronic-parts/integrated-circuits-ics)
[scrapy.core.engine] INFO: Closing spider (finished)
...