我是个新手,使用scrapy和python2.7来实现web自动化。我想在打开登录表单的网站上点击一个html按钮。我的问题是,我只想点击一个按钮,并将控制转移到新页面。我读过所有类似的问题,但没有一个令人满意,因为它们都包含直接登录或使用selenium。
下面是按钮的超文本标记语言代码,我想访问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
我是否需要在每次访问一个链接时使用“need”并回调新函数,还是有其他方法可以做到这一点。
发布于 2018-07-05 04:09:51
您需要的是生成一个新请求,或者更容易地像在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部分
https://stackoverflow.com/questions/51179346
复制相似问题