Я пытаюсь выполнить скринирование веб-страницы (используя Mechanize), которая отображает записи на странице сетки. Я могу прочитать значения, отображаемые на первой странице, но теперь вам нужно перейти на следующую страницу, чтобы прочитать соответствующие значения.Веб-страница скриншота экрана, которая отображает страницу данных с использованием Mechanize
<tr>
<td><span>1</span></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$2')">2</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$3')" >3</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$4')" >4</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$5')" >5</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$6')">6</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$7')" >7</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$8')">8</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$9')" >9</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$10')" >10</a></td>
<td><a href="javascript:__doPostBack('gvw_offices','Page$11')">...</a></td>
</tr>
Я могу пройти через все ссылки, но когда я пытаюсь это: -
links = (row/"a")
links.each do |link|
agent.click link.attributes['href'] # This fails
agent.click link # This also fails
end
Причина в том, что agent.click ожидает URL в качестве аргумента.
Есть ли способ, по которому мы можем читать все значения, когда они отображаются на странице? Если нет, то как мы можем иметь такое действие click, когда href является обратной передачей, а не URL?
Это хорошее решение! – Geo
Проблема в том, что эта страница использует ASP.Grid для отображения страницы с данными, поэтому ссылка для каждой страницы нет, это сообщение и не имеет прямого URL-адреса. Вы говорите, что если мы добавим имя сетки и номер страницы в URL-адрес, мы можем вызвать эту обратную передачу (хотя это не сработало, когда я попробовал)? – MOZILLA
Я не знаком с ASP.net, но пост назад - это в основном запрос POST на текущую страницу, не так ли? поэтому вы можете попробовать что-то вроде agent.post current_url, {"page_number" => page_number} –