Вверх ↑
Этот топик читают: Гость
Ответов: 253
Рейтинг: 0
#1: 2019-05-13 16:48:49 ЛС | профиль | цитата
Реально вызвать или показать текст JavaScripta. Пытаюсь парсить информацию сайта, но выдаёт не всю информацию. а именно Кусок с JavaScript.

Add(MainForm,2953706,21,105)
{
Width=425
Height=377
link(onCreate,9616762:doLoadString,[(61,125)(61,111)])
}
Add(HTTPClient,9616762,70,105)
{
URL="https://www.avito.ru/smolensk/kvartiry/1-k_kvartira_47_m_810_et._524096843"
Method=1
link(onHeadersAvail,5528711:doWork1,[(132,111)])
link(onFinish,5528711:doWork2,[(116,118)(116,125)])
}
Add(RichEdit,1117308,161,126)
{
Width=409
Height=339
Align=5
ScrollBars=2
}
Add(HubEx,5528711,128,119)
{
Angle=1
link(onEvent,1117308:doAdd,[(132,132)])
}

карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 4621
Рейтинг: 746
#2: 2019-05-13 17:03:09 ЛС | профиль | цитата
Ну, скрипт информацию не из воздуха берет. Просто делает в фоне другой запрос или несколько. Перехватываешь и анализируешь запрос и выполняешь такой же.
карма: 26

0
Ответов: 253
Рейтинг: 0
#3: 2019-05-13 17:43:27 ЛС | профиль | цитата
Netspirit писал(а):
Ну, скрипт информацию не из воздуха берет. Просто делает в фоне другой запрос или несколько. Перехватываешь и анализируешь запрос и выполняешь такой же.

А можно пожалуйста по подробней, ну или пример
карма: 0

0
Ответов: 4621
Рейтинг: 746
#4: 2019-05-13 17:50:35 ЛС | профиль | цитата
Гугли "перехват трафика браузера". Можешь начать с Fiddler. Перехватываешь запрос от скрипта, делаешь в своей программе такой же.
карма: 26

0
Ответов: 253
Рейтинг: 0
#5: 2019-05-14 10:12:12 ЛС | профиль | цитата
Сложно) Просто проблема в том, что допустим DevTools от Гугл Видет весь текст страницы. А HTTPClient Выдаёт не весь текст. Бес скрипта.
карма: 0

0
Ответов: 4621
Рейтинг: 746
#6: 2019-05-14 11:54:57 ЛС | профиль | цитата
Ну, так JavaScript предназначен для исполнения браузером. В браузере есть механизм исполнения скрипта, вот он его и исполняет.
А "бесов скрипта" надо изгонять

Редактировалось 1 раз(а), последний 2019-05-14 11:55:11
карма: 26

0
Ответов: 253
Рейтинг: 0
#7: 2019-05-14 14:00:54 ЛС | профиль | цитата
Дак а как мне его выловить? Он просто создаёт ссылку на фотографию. а она мне очень нужна) Реч идёт о АВИТЕ) Заходишь на сайт. Нажимаешь Показать телефон. он выдаёт картинку с номером.
Кнопка до нажати

А вот кнопка после нажатия Выдаёт ссылку на картинку

Ну а вот тоже до нажатия на кнопку. В коде есть скрипт который не выдаёт HTTPClient
А в скрипте уже есть эта ссылка. Нажимать некуда не нужно.


У меня есть шансы выловить от туда картинку ?
карма: 0

0
Главный модератор
Ответов: 2997
Рейтинг: 395
#8: 2019-05-14 14:21:37 ЛС | профиль | цитата
egorhay писал(а):
кнопка после нажатия Выдаёт ссылку на картинку

egorhay, Это не ссылка на картинку, а сама картинка в формате base64. "Бери - не хочу!"
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 253
Рейтинг: 0
#9: 2019-05-14 14:36:13 ЛС | профиль | цитата
Nic писал(а):

Это не ссылка на картинку, а сама картинка в формате base64. "Бери - не хочу!"

даа вы правы. Но проблема проблема то в том как ее взять. Я просто не понимаю как ее перехватить( Спарсить )

--- Добавлено в 2019-05-14 14:39:22


egorhay писал(а):
А в скрипте уже есть эта ссылка. Нажимать некуда не нужно.

Сейчас понял что это не та картинку. я вообще не понимаю откуда он берет Картинку с номером

Редактировалось 1 раз(а), последний 2019-05-14 14:39:22
карма: 0

0
Ответов: 4621
Рейтинг: 746
#10: 2019-05-14 15:22:51 ЛС | профиль | цитата
Отсюда он её берет:


(полный адрес запроса: https://www.avito.ru/items/phone/524096843?pkey=ca0a330d828366d76cc658d9f5251464&vsrc=r)
Осталось выяснить как генерируется pkey.

Редактировалось 1 раз(а), последний 2019-05-14 15:26:19
карма: 26

0
Ответов: 253
Рейтинг: 0
#11: 2019-05-14 15:26:58 ЛС | профиль | цитата
Netspirit писал(а):
генерируется pkey
Да, я тоже пытаюсь это выяснить. В коде страницы пока нечего не нашел похожего.

--- Добавлено в 2019-05-14 15:55:43

Я нашел его. но его нужно как-то разобрать.
avito.item.phone = '61c456eff5124dey1c746a3f8y10383156d4179f2b4e6c6y0ca9acy26c4e412f071ed6913130f8f4a6a7cbedc21eff265y4c1';
Я так понял через каждые два символа

--- Добавлено в 2019-05-14 16:00:46

А вот с хешем не понятно

--- Добавлено в 2019-05-14 16:06:34

Ааа всё, Хеш и не нужен. просто в каком-то случаи у меня он был. а теперь не нужен. Теперь нужно понять как разбить avito.item.phone

--- Добавлено в 2019-05-14 16:21:33

Я его разбил. и не чего не понял. я думал через каждые 2 символа. но вот что у меня получилось. + нужный символ - не нужные.
Разбил
d05057f3fc9dca164a8fef222fe18a70465dbfdff20a180d3d0f1a82f1df0d55406a8q8ef622cefq4a4q41a4d9ef3275d50
Должно получиться d0fcc68f2176bf083f8105686c444e2d
d+
05-
0+
57-
f+
3f-
c+
9d-
c+
a1-
6+
4a-
8+
fe-
f+
22-
2+
fe-
1+
8a-
7+
04-
6+
5d-
b+
fd-
f+
f2-
0+
a1-
8+
0d-
3+
d0-
f+
1a-
8+
2f-
1+
df-
0+
d5-
5+
40-
6+
a8q-
8+
ef-
6+
22-
c+
efq-
4+
a4q-
4+
1a-
4+
d9-
e+
f3-
2+
75-
d+
50-

--- Добавлено в 2019-05-14 16:22:14

Там в конце стали появляться по 3 символа которые нужно удалить.

Редактировалось 5 раз(а), последний 2019-05-14 16:22:14
карма: 0

0
Ответов: 253
Рейтинг: 0
#12: 2019-05-14 16:30:25 ЛС | профиль | цитата
Нет. моя теория не верна.

Редактировалось 1 раз(а), последний 2019-05-14 17:17:59
карма: 0

0
Ответов: 4621
Рейтинг: 746
#13: 2019-05-14 16:50:19 ЛС | профиль | цитата
Нужно дебажить код. Найти место, в котором выполняется запрос с pkey. И через стек вызовов в обратном порядке найти место где он формируется.
Это может быть математика на основе какого-то рандомного значения из кода страницы, из куки или из другого запроса к серверу.
карма: 26

0
Ответов: 839
Рейтинг: 17
#14: 2019-06-13 17:07:39 ЛС | профиль | цитата
Идея такава. что если браузер использует юсер агент телефона. появляеться кнопка позвонить. и в коде свободен номер без заморока.
Долго думал. и нашол вариант. но что то у меня пошло не так.
Add(WebBrowser,9606497,511,343)
{
Left=75
Top=10
Width=1215
Height=855
Silent=0
Point(doFromText)
}
Add(Button,4422027,224,371)
{
Top=20
link(onClick,4105625:doEvent1,[])
}
Add(TCP_Client,2895931,392,371)
{
Port=443
IP="185.89.12.132"
link(onRead,11944938:doEvent,[])
link(Data,10745238:Text,[])
}
Add(Hub,4105625,294,371)
{
link(onEvent1,2895931:doOpen,[])
link(onEvent2,2895931:doSend,[(350,384)(350,391)])
}
Add(Debug,11944938,455,371)
{
link(onEvent,9606497:doFromText,[])
}
Add(StrList,10745238,399,280)
{
Strings=#65:GET /abakan/vakansii/voditel_kategorii_e_i_s_1007149758 HTTPS/1.1|18:Host: www.avito.ru|97:User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:10.0.2) Gecko/20100101 Firefox/10.0.2|00
}
карма: 0

0
14
Сообщение
...
Прикрепленные файлы
(файлы не залиты)