Почему один и тот же URL дает разные результаты? - PullRequest
0 голосов
/ 28 апреля 2018

На следующей странице номера 2, 3 ... внизу все указывают на один и тот же URL. Тем не менее, будут показаны разные таблицы. Кто-нибудь знает, какие конкретные методы используются здесь? Как извлечь информацию из этих таблиц, используя необработанный HTTP-запрос (я предпочитаю не использовать браузер без монитора)? Спасибо.

https://services27.ieee.org/fellowsdirectory/home.html#results_table

Ответы [ 3 ]

0 голосов
/ 28 апреля 2018

Когда вы нажимаете цифровые кнопки, некоторый код Javascript отправляет запрос AJAX POST на https://services27.ieee.org/fellowsdirectory/getpageresultsdesk.html;jsessionid=yoursessionid с formData, включающим pageNum: 3 и некоторыми другими параметрами форматирования. Сервер отвечает HTML-блоком строк таблицы, которые загружаются на страницу. Вы можете просмотреть запросы на этой веб-странице в сетевом инспекторе вашего браузера (в инструментах разработчика), чтобы точно узнать, какие HTTP-запросы происходят.

0 голосов
/ 28 апреля 2018

Ссылка имеет обработчик onclick, который изменяет href onclick. Идти к https://services27.ieee.org/fellowsdirectory/home.html#results_table В консоли введите: window.location = getDetailProfileUrl ( 'lOH1bDxMyI1CCIxo5ODlGg =='); Это перенаправляет на Аарона, Жюль. Теперь вернитесь назад и введите window.location = getDetailProfileUrl ('JJuL3J00kHdIUozoVAgKdg =='); Это открывает Аартс, Рональд. Обычно при нажатии на ссылку JavaScript изменяет URL-адрес ссылки.

Чтобы извлечь их с помощью php, используйте функцию file_get_contents ().

echo file_get_contents('https://services27.ieee.org/fellowsdirectory/home.html#results_table');

Это распечатает страницу. Теперь очистите его с помощью JavaScript.

echo "<script>console.log(document.querySelectorAll('.name'));</script>";

Надеюсь, это поможет.

0 голосов
/ 28 апреля 2018

Он использует Javascript (AJAX) для выполнения HTTP-вызовов на сервер. Если вы проверите сетевую активность в инструментах разработчика, вы увидите вызовы по следующему URL: https://services27.ieee.org/fellowsdirectory/getpageresultsdesk.html.

Они отправляют данные из Javascript:

selectedJSON: {"alpha":"ALL","menu":"ALPHABETICAL","gender":"All","currPageNum":1,"breadCrumbs":[{"breadCrumb":"Alphabetical Listing "}],"helpText":"Click on any of the alphabet letters to view a list of Fellows."}
inputFilterJSON: {"sortOnList":[{"sortByField":"fellow.lastName","sortType":"ASC"}],"typeAhead":false}
pageNum: 2

Вы можете увидеть свойство pageNum. Вот как они запрашивают определенную страницу результатов.

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