Python Scrapy单击html按钮

时间:2018-07-04 18:33:46

标签: python-2.7 web-scraping scrapy

我是scrapy的新手,并在python 2.7中使用scrapy进行网络自动化。我想单击打开登录表单的网站上的html按钮。我的问题是我只想单击一个按钮,然后将控件转移到新页面。我已经阅读了所有类似的问题,但没有一个令人满意的,因为它们都包含直接登录或使用硒。

下面是按钮的HTML代码,我想访问有登录页面的http://example.com/login

<div class="pull-left">
    <a href="http://example.com/login" class="emplink">Employers</a>    

我已经编写了提取链接的代码。但是如何访问该链接并执行下一步。下面是我的代码。

import scrapy

class QuotesSpider(scrapy.Spider):
    name = 'pro'
    url =  "http://login-page.com/"


def start_requests(self):
    yield scrapy.Request(self.url, self.parse_login)


def parse_login(self, response):
    employers = response.css("div.pull-left a::attr(href)").extract_first()
    print employers

我是否需要每次都使用“ yield”并回调新功能以仅访问链接,否则还有其他方法可以使用。

1 个答案:

答案 0 :(得分:2)

您需要的是发出一个新请求,或者像在docs中那样轻松地制作一个response.follow

def parse_login(self, response):
    next_page = response.css("div.pull-left a::attr(href)").extract_first()
    if next_page is not None:
        yield response.follow(next_page, callback=self.next_page_parse)

关于回调,它基本上取决于页面的解析难度,例如,检查文档上的general spiders部分