Тема: AHK: Получение инфы с сайта
Привет. Вот тут во вьювере внизу указано "Page 1 of 240". Как получить эти значения?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Привет. Вот тут во вьювере внизу указано "Page 1 of 240". Как получить эти значения?
Наверное получить HTML-код страницы, найти в нём блок
<p><span class="BRcurrentpage">Page (1 of 246)</span></p>
и использовать RegEx.
В самом HTML-коде страницы этого нет, а только в инструментах разработчика видно. Видимо, формируется посредством js.
Тогда наверно можно только загрузить в Хром или Эдж, используя Chrome.ahk, дождаться появления элемента с нужным классом и получить его текст.
Я сохранял из Мозиллы в файл на рабочий стол. Вот такой фрагмент там присутствует:
<li class="scrubber">
<div class="BRnavpos">
<div class="BRpager ui-slider ui-corner-all ui-slider-horizontal ui-widget ui-widget-content"><div class="ui-slider-range ui-corner-all ui-widget-header ui-slider-range-min" style="width: 0%;"></div><span tabindex="0" class="ui-slider-handle ui-corner-all ui-state-default" style="left: 0%;"></span></div>
<div class="BRnavline"></div>
</div>
<p><span class="BRcurrentpage">Page (1 of 246)</span></p>
</li>
<li>
А почему бы ему там не присутствовать, если он виден в инструментах разработчика.
ypppu
Наверняка, если в самой Мозилле после загрузки страницы открыть ее HTML-код — это там не найдётся.
DD, да если просто пройти в Мозилле по ссылке, то не найдётся. А скачивать страницу по какой-то причине нельзя?
Стр. ведь скриптом будет скачиваться, а не Мозиллой). А скрипт её как есть скачивает.
А, понял.
DD, может я чего не понимаю, тогда поправьте меня. Залез на сайт, открыл инструменты разработчика, фильтранул по XHR, вижу адрес:
https://ia800603.us.archive.org/BookRea … symb00tres
С него выгружается JSON набор данных. Среди прочего
"data": [
[
{
"width": 3344,
"height": 4977,
"uri": "https://ia800603.us.archive.org/BookReader/BookReaderPreview.php?id=dictionaryofsymb00tres&subPrefix=dictionaryofsymb00tres&itemPath=/1/items/dictionaryofsymb00tres&server=ia800603.us.archive.org&page=leaf1&fail=preview&",
"leafNum": 1,
"uri_2": {
"link": "https://archive.org/download/dictionaryofsymb00tres/dictionaryofsymb00tres_jp2.zip/dictionaryofsymb00tres_jp2%2Fdictionaryofsymb00tres_0001.jp2",
"base_params": "ext=jpg"
},
"pageType": "Cover",
"ppi": 514,
"pageSide": "R",
"origIndex": 0,
"viewable": true
}
],
[
{
"width": 2979,
"height": 4574,
"uri": "https://ia800603.us.archive.org/BookReader/BookReaderPreview.php?id=dictionaryofsymb00tres&subPrefix=dictionaryofsymb00tres&itemPath=/1/items/dictionaryofsymb00tres&server=ia800603.us.archive.org&page=leaf2&fail=preview&",
"leafNum": 2,
"uri_2": {
"link": "https://archive.org/download/dictionaryofsymb00tres/dictionaryofsymb00tres_jp2.zip/dictionaryofsymb00tres_jp2%2Fdictionaryofsymb00tres_0002.jp2",
"base_params": "ext=jpg"
},
"pageType": "Blank Tissue",
"ppi": 514,
"pageSide": "L",
"origIndex": 1,
"viewable": true
},
{
"width": 2979,
"height": 4574,
"uri": "https://ia800603.us.archive.org/BookReader/BookReaderPreview.php?id=dictionaryofsymb00tres&subPrefix=dictionaryofsymb00tres&itemPath=/1/items/dictionaryofsymb00tres&server=ia800603.us.archive.org&page=leaf3&fail=preview&",
"leafNum": 3,
"uri_2": {
"link": "https://archive.org/download/dictionaryofsymb00tres/dictionaryofsymb00tres_jp2.zip/dictionaryofsymb00tres_jp2%2Fdictionaryofsymb00tres_0003.jp2",
"base_params": "ext=jpg"
},
"pageType": "Normal",
"ppi": 514,
"pageSide": "R",
"origIndex": 2,
"viewable": true
}
], ....
Элементы содержат номера страниц leafNum. Т.е подсчитать количество и дёргать вообще без проблем. В чём сложность ?
Xameleon
Спасибо! Не ожидал, что они будут использовать такой лист на сайте).
DD, всегда после загрузки страницы первым делом вбивайте в поиск, то что вам нужно найти и анализируйте полученные результаты.
Я в XHR искал переменную с количеством страниц, не думал что по ссылке будет список.
Не понимаю про какую ссылку вы говорите.
1) Чистите кеш и куки (я использую оперу)
2) Выключаете джаваскрипт
3) Загружаете нужный вам сайт
4) Если сайт не загрузился, включаете джаваскрипт, чистите кеш, куки, перезагружаете сайт
5) Нажимаете ctrl+f, вписываете что вам надо найти, нажимаете энтер.
В результате получаете php, который загружает данный json.
А есть более быстрый способ получить конкретные данные с сайта, чем ResponseText? Например "тут", интернет магазин. Нужно получать фразу "Sold Out", а код страницы 240к+ символов. В итоге ради одной фразы надо получать всю страницу, а потом через regex искать нужное, а на это уходит время. Может можно как-то сразу обращаться и парсить "<button>Sold Out</button>" ?
try
{
link := ""
http := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
http.Open("GET", link, False)
http.Send()
http.WaitForResponse()
RegExMatch(http.ResponseText, "Sold Out", match)
msgbox, %match%
}
catch e
{
msgbox, No internet connection.
}
Да. Почитать их апи.
Malcev Нашел спасибо, только я не знаю как работать с API, может есть примеры какие-нибудь для ahk или посоветуете что-нибудь ?
На ахк мало что есть готового.
Либо изучать самому, либо переходить на питон.
Можно еще грузить часть страницы, определенное количество байт: http://forum.script-coding.com/viewtopi … 761#p83761
Спасибо.
Как получить весь 15-тысячный список из вкладки по умолчанию? То есть, нужна возможность получить постоянные ссылки на переходы внизу, чтобы последовательно их сохранить.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться