首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用scrapy-splash选择依赖下拉列表

使用scrapy-splash选择依赖下拉列表
EN

Stack Overflow用户
提问于 2017-11-30 21:54:42
回答 0查看 693关注 0票数 2

我正在尝试抓取以下网站:https://www.climatempo.com.br/climatologia/558/saopaulo-sp。它有一个两个下拉菜单,第二个取决于第一个,所以我选择通过scrapy-splash使用scrapy和splash。

我需要自动更改位置,首先选择州,然后选择城市。我尝试过SplashFormRequest,但我无法更改城市列表。我的爬行器是(打印以进行调试):

代码语言:javascript
复制
import scrapy
from scrapy_splash import SplashRequest, SplashFormRequest


class ExampleSpider(scrapy.Spider):
    name = 'climatologia'

    def start_requests(self):
        urls = ['https://www.climatempo.com.br/climatologia/558/saopaulo-sp']
        for url in urls:
            yield SplashRequest(url=url, callback=self.parse,
                                endpoint='render.html',
                                args={'wait': 0.5},)

    def parse(self, response):
        print(response.url)
        state = response.css("select.slt-geo")[0].css("option::attr(value)").extract()
        print(state)

        return SplashFormRequest(response.url, method='POST',
                                 formdata={'sel-state-geo': 'SP'},
                                 callback=self.state_selected,
                                 args={'wait': 0.5})

    def state_selected(self, response):
        print('\t:+)\t:+)\t:+)\t:+)\t:+)\t:+)')
        print(response.css("select.slt-geo")[0].css("option::text").extract())
        print(response.css("select.slt-geo")[1].css("option::text").extract())
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47575155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档