Python Scrapy Нажмите на кнопку HTML - PullRequest
0 голосов
/ 04 июля 2018

Я новичок в scrapy и использую scrapy с python 2.7 для веб-автоматизации. Я хочу нажать на кнопку 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" Everytime и обратный вызов новой функции для простого посещения ссылки, или есть другой способ сделать это.

1 Ответ

0 голосов
/ 04 июля 2018

Вам нужно выдать новый запрос или просто сделать 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 в docs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...