видимо проблема сейчас после if в двигать мышь и кликнуть на элемент
var data = {fail:false,wait:true};data["scroll"] = "no scroll" == "scroll";data["threshold"] = parseInt(80);data["timeout"] = 5000;data["data"] = "iVBORw0KGgoAAAANSUhEUgAAAMEAAAAeBAMAAABnBGdVAAAALVBMVEUAWv/V5P////+cv/9Chf+Qt/+81P/k7v+Crv/y9/+nxv/5+/9dlv/F2f9zpf8aFseGAAABB0lEQVR4Ae2SsUoDQRCG58ixbHHFXhCsHcHG5kilaJFG5j1EMIepwqFgtYWNbGWEEGGtfQBBzm4LC/MkvoazupWphEkT9msGrvi/m38HMpnMfxg2a5/O0qxVJyDQT2sp5bWoQd32GzbQdAHl7NAqPABCr5+xJ+Rgh3tChhN7OaZO+SvrThfQfr6H9oN3qB5h1MgYanDNvf1pZtABTV6BLn5bWskY+F/JHIc4QSHiZAnFTjSUM5QxxFSfDAXn6WSo5kZoBzKg31JLyrMhtTTw3J6IIYbffBm9bANNH8Ad8UuHmg19NZcx7I75nO7Sta5wn6/Vw4iXOccXI3NLf+B32DDbYMhktphvXodGRgltnEgAAAAASUVORK5CYII=";_wait_image(data)!
_if(typeof _Idle != "undefined", function(){
_Idle.emulate({useGeneral: true, target: _image()})!
})!
_if_else(typeof _Idle != "undefined" && _Idle.additionalEmulationEnabled(), function(){
_Idle.moveAndClickOn(_image(),{holdCtrl: false, clickType: "left", wait: false, moveSettings: {} })!
}, function(){
_image().random_point()!
_if(_result().length > 0, function(){
move( {} )!
_image().clarify(X,Y)!
_call(_clarify, {} )!
mouse(X,Y)!
})!
})!
Почему правильный XPath код не работает в БАСе?
-
@fox , я все правильно сделал.
Вот скрипт.
Странно, не могу скачать свой же скрипт, который выложил в этом посте: Ошибка файлы отсутствуют.Скрипт из двух действий:

https://www.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36 Accept-Language: en-US,en;q=0.9 Cookie: xman_us_f=x_locale=en_US&x_l=0; intl_locale=en_US; aep_usuc_f=site=glo&c_tp=USD®ion=US&b_locale=en_US -
@fox , а нет, я все правильно сделал.
Вот скрипт.Перезалейте скрипт, хотя по коду неправильной ссылки я нашёл скрипт
xpath отрабатывает правильно, ошибки же нет. Но текста там тоже нет, вам же уже говорили, что не сравнивайте готовую страницу в браузере с результатом запроса, они будут разные.
Вот этот xpath в браузере возвращает текст:

А вот после запроса этого текста просто нет:

Значит этот текст заполняет какой нибудь скрипт, или дополнительный запрос
-
@fox Вы это через просмотр http трафика увидели? Я ей не пользуюсь, почему-то после нажатия на эту кнопку у меня хром думает секунд 20 прежде чем показать пришедшую страницу в браузере. Не знаете как исправить? Других проблем с браузером нет, все открывается за секунду.
-
Вы это через просмотр http трафика увидели? Я ей не пользуюсь, почему-то после нажатия на эту кнопку у меня хром думает секунд 20 прежде чем показать пришедшую страницу в браузере. Не знаете как исправить? Других проблем с браузером нет, все открывается за секунду.
В коде страницы есть скрипты, которые браузер начинает выполнять, и не все скрипты он может выполнить сразу, отсюда и задержка. Firefox кстати открывает страницу сразу.
-
@fox said in Почему правильный XPath код не работает в БАСе?:
Значит этот текст заполняет какой нибудь скрипт, или дополнительный запрос
Нашел запрос:
GET https://my.aliexpress.com/wishlist/wishlist_item_count.htm?itemtype=product&itemid=32808065488&_csrf_token_=151le2xir9o00&_=1541702377993 HTTP/1.1 Host: my.aliexpress.com Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36 DNT: 1 Accept: */* Referer: https://www.aliexpress.com/item/USLION-Phone-Case-For-iPhone-7-6-6s-Plus-5-5s-SE-Simple-Solid-Color-Ultrathin/32808065488.html Accept-Encoding: gzip, deflate, br Accept-Language: ru,en-US;q=0.9,en;q=0.8 Cookie: ali_apache_id=11.139.3.86.1541702331484.208968.4; xman_t=xM//himR3juCqLQxRx10KFURwCqHcmNEDK5Z0UWlWbvOz9lfhDgFRnT9I023i42W; xman_f=DqowFAxV7UcZFp+GVyT+wzR8HPu1XNkDL8Cgxx7CilIy91fnhiilAKs3g0uXiMiq/WsHUETDsuIl2vFevWgHhFZqFQvuJHYZovRwb/VLNgQbHdbw/AGL4w==; AKA_A2=A; _ga=GA1.2.1958370003.1541702334; _gid=GA1.2.491123276.1541702334; _ym_uid=1541702334641712455; _ym_d=1541702334; acs_usuc_t=acs_rt=eb19edc6b52f4c3c95c7f798577acff4&x_csrf=151le2xir9o00; aep_history=keywords%5E%0Akeywords%09%0A%0Aproduct_selloffer%5E%0Aproduct_selloffer%0932808065488; _gat=1; _ym_visorc_29739640=b; _ym_isad=2; cna=vHBrFGjWn3ICAU3eYEYPYcF2; JSESSIONID=015B422F71642D7FCC04EDE00DA1FF7F; _fbp=fb.1.1541702334849.2103477419; xman_us_f=x_locale=en_US&x_l=0; intl_locale=en_US; _m_h5_tk=0ec8132e8a06b38e8f97b86b8e7a152b_1541704856808; _m_h5_tk_enc=5717716f02d89fbd60d3466d3ec9ad55; aep_usuc_f=site=glo&c_tp=USD®ion=US&b_locale=en_US; intl_common_forever=0T31Cg1NdIVjKwqtKJMfZV7MXQnyibx/9TrGZhPNRSAe0NPvzDXAHQ==; RT="sl=2&ss=1541702337374&tt=3873&obo=0&sh=1541702344933%3D2%3A0%3A3873%2C1541702339449%3D1%3A0%3A2070&dm=aliexpress.com&si=c4e041ae-bfa1-40e2-8841-297c17897f45&se=900&bcn=%2F%2F364bf6be.akstat.io%2F"; isg=BGZmyEsJARUuEtWxAsEQIQcVt9wo76plTYc19lAPUglk0wbtuNf6EUylL5d6-6IZ; ali_apache_track=; ali_apache_tracktmp=В ответ приходит:
HTTP/1.1 200 OK Content-Type: application/javascript;charset=utf-8 Vary: Accept-Encoding P3P: CP="CAO PSA OUR" Content-Language: en-US Content-Security-Policy-Report-Only: default-src * 'unsafe-eval' 'unsafe-inline' data:;report-uri //pointman.alibaba.com/csp?app=ae_default Server: Tengine/Aserver Strict-Transport-Security: max-age=31536000 Timing-Allow-Origin: * Content-Length: 31 Date: Thu, 08 Nov 2018 18:39:36 GMT Connection: keep-alive Set-Cookie: JSESSIONID=7A5E506F39108A7E535BA222B260B1DE; Path=/; HttpOnly Set-Cookie: ali_apache_track=; Domain=.aliexpress.com; Expires=Tue, 26-Nov-2086 21:53:43 GMT; Path=/ Set-Cookie: ali_apache_tracktmp=; Domain=.aliexpress.com; Path=/ window.collectNum={"num":87291}Если повторить этот гет запрос в таком виде без неизвестных мне параметров:
https://my.aliexpress.com/wishlist/wishlist_item_count.htm?itemtype=product&itemid=32808065488То приходит та же строчка с нужным числом:
window.collectNum={"num":87291}Я правильно понимаю, что не имеет смысла указывать эти дополнительные параметры, или здесь есть какие-то нюансы?
-
@senerg
В Вашем случае недостаточно данных, чтобы говорить о том, что xpath не работает. Вы увидели данные в браузере, а парсите их в http-клиенте bas. Они могут отличаться. Ведь данные вы парсите из содержимого ответа сервера, а не браузера.
Чтобы однозначно проверить это - сохраните содержание ответа сервера и проверьте в нем наличие нужных Вам данных.
После этого можно будет говорить о правильности работы xpath. -
Думал, что запрос http клиента аналогичен запросу браузера
Возможно вы имели ввиду другое, но всё же. Запросы браузера и http-клиента одинаковые, разница лишь в том, что в браузере выполняются скрипты, устанавливаются куки и заголовки, формируются токены и т.п. А в http-клиенте большинство работы приходится выполнять самому.
-
@fox said in Почему правильный XPath код не работает в БАСе?:
А в http-клиенте большинство работы приходится выполнять самому
Как я понял, большинство работы делать не нужно. Делать нужно только то, что позволяет получить нужные данные.
@fox said in Почему правильный XPath код не работает в БАСе?:
формируются токены
Что это такое, их я еще не видел.


