Scrapy: следующая кнопка использует WebForm_DoPostBackWithOptions () - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь удалить информацию из https://seminovos.localiza.com/Paginas/resultado-busca.aspx?&yr=2014_2019&pc=25000_500000

На этой веб-странице кнопка next_page имеет href со следующим: 'javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$ctl42$g_f221d036_75d3_4ee2_893d_0d7b40180245$ProximaPaginaSuperior", "", true, "", "", false, true))

Я мог бы сделать это легко с помощью Selenium, но с помощью скрапа, как я могу перейти на следующую страницу?

Я пробовал что-то вроде:

next_page = response.xpath('.//a[@class="item option next"]/@href').extract_first()

if next_page:
    self.log(next_page)
    scrapy.http.FormRequest(response.url,formdata={"eventTarget":"ctl00$ctl42$g_f221d036_75d3_4ee2_893d_0d7b40180245$ProximaPaginaSuperior","eventArgument":"","validation":"true","validationGroup":"","actionUrl":"","trackFocus":"false","clientSubmit":"true"},callback=self.parse)

Как правильно перейти к следующей странице в этой ситуации?

Ответы [ 2 ]

1 голос
/ 13 апреля 2019

Узнайте подробности запроса, который ваш веб-браузер выполняет при нажатии, и попытайтесь воспроизвести его на основе доступных данных.

Ответы на Можно ли использовать скрап для очистки динамического контента с веб-сайтов, использующих AJAX? должно дать вам представление о способах решения этой проблемы. Существует также запрос на извлечение документации Scrapy , который охватывает работу с сценариями этого типа, что может оказаться полезным.

0 голосов
/ 15 апреля 2019

Он использует ASP.NET, поэтому, ища намного больше и анализируя страницу, я нашел то, что искал:

post

окончательный кодимеет этот формат:

if next_page:    
    yield FormRequest.from_response(response,formdata={'__EVENTTARGET':'ctl00$ctl42$g_f221d036_75d3_4ee2_893d_0d7b40180245$ProximaPagina'},callback=self.parse,dont_click=True)

Теперь это работает.Спасибо.

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