Этот вопрос закрыт для ответов, так как повторяет вопрос Как правильно составить google-скрипт UrlFetchApp для авторизации в bitrix?
@qwqeqwe2017

Авторизация в bitrix. Что неправильно в скрипте?

header
POST /ru/auth/index.php?login=yes HTTP/1.1
Host: site.ru
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 142
Referer: https://site.ru/ru/auth/index.php
Cookie: PHPSESSID=bd2e7f0dbc8968530354a3d4b156e1da; BITRIX_SM_SALE_UID=0; BITRIX_SM_LOGIN=*TYT_LOGIN*; actsid=1b70947bb5acb68964f2157dc732ca0963c91a48a5c25359c7cc1208a72c51c4; BITRIX_SM_SOUND_LOGIN_PLAYED=Y; BITRIX_SM_GUEST_ID=3261444; BITRIX_SM_LAST_VISIT=20.07.2017+13%3A56%3A28; _ym_uid=1500546312553695290; _ga=GA1.2.1923907712.1500546313; _gid=GA1.2.791599284.1500546313; _ym_isad=1; BX_USER_ID=3d885dd6e1f9aa504e83709ba4033826; tmr_detect=1%7C1500548193288; _gat=1; _ym_visorc_24200380=w; _ym_visorc_42810199=w
DNT: 1
Connection: keep-alive
Upgrade-Insecure-Requests: 1
POST data
AUTH_FORM=Y
TYPE=AUTH
backurl=/ru/auth/index.php
USER_LOGIN=*TYT_LOGIN*
USER_PASSWORD=*TYT_PASS*
Login=Войти
cURL
curl "https://site.ru/ru/auth/index.php?login=yes" -H "Host: site.ru" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" -H "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3" --compressed -H "Content-Type: application/x-www-form-urlencoded" -H "Referer: https://site.ru/ru/auth/index.php" -H "Cookie: PHPSESSID=bd2e7f0dbc8968530354a3d4b156e1da; BITRIX_SM_SALE_UID=0; BITRIX_SM_LOGIN=*TYT_LOGIN*; actsid=1b70947bb5acb68964f2157dc732ca0963c91a48a5c25359c7cc1208a72c51c4; BITRIX_SM_SOUND_LOGIN_PLAYED=Y; BITRIX_SM_GUEST_ID=3261444; BITRIX_SM_LAST_VISIT=20.07.2017+13"%"3A56"%"3A28; _ym_uid=1500546312553695290; _ga=GA1.2.1923907712.1500546313; _gid=GA1.2.791599284.1500546313; _ym_isad=1; BX_USER_ID=3d885dd6e1f9aa504e83709ba4033826; tmr_detect=1"%"7C1500548193288; _gat=1; _ym_visorc_24200380=w; _ym_visorc_42810199=w" -H "DNT: 1" -H "Connection: keep-alive" -H "Upgrade-Insecure-Requests: 1" --data "AUTH_FORM=Y&TYPE=AUTH&backurl="%"2Fru"%"2Fauth"%"2Findex.php&USER_LOGIN=*TYT_LOGIN*&USER_PASSWORD=*TYT_PASS*&Login=*TYT_LOGIN*
Форма в html
<div class="bx-auth" ng-app="AuthForm">
  
    
      <div class="bx-auth-title">Авторизация</div>
  
  <form
    ng-controller="AuthFormCtrl"
    name="AuthForm"
    id="AuthForm"
    method="post"
    target="_top"		action="/ru/auth/index.php?login=yes&amp;backurl=%2Fru%2F"
    novalidate
        autocomplete="off"
  >
  
    <input type="hidden" name="AUTH_FORM" value="Y" />
    <input type="hidden" name="TYPE" value="AUTH" />
          <input type="hidden" name="backurl" value="/ru/auth/index.php?backurl=%2Fru%2F" />
        
    <div class="row">
      <label class="bx-auth-label" for="USER_LOGIN">Логин</label>
      <input class="bx-auth-input"
        type="text"
        id="USER_LOGIN"
        name="USER_LOGIN"
        ng-model="login"
        required
        ng-minlength="4"
        ng-maxlength="30"
      />
      <div class="validation-errors" ng-cloak ng-show="AuthForm.USER_LOGIN.$dirty && AuthForm.USER_LOGIN.$invalid">
        <div ng-show="AuthForm.USER_LOGIN.$error.minlength">
          Логин короче четырех символов.				</div>
        <div ng-show="AuthForm.USER_LOGIN.$error.maxlength">
          Логин не должен быть длинее тридцати символов.				</div>
        <div ng-show="AuthForm.USER_LOGIN.$error.required">
          Логин должн быть указан.				</div>
        <div ng-show="AuthForm.USER_LOGIN.$error.exist">
          Такой логин уже существует.				</div>
        <div ng-show="AuthForm.USER_LOGIN.$error.pattern" class="multi-line">
          Логин может состоять только из латинских букв, цифр, тире и точек.				</div>
      </div>
    </div>

    <div class="row">
      <label class="bx-auth-label" for="USER_PASSWORD">Пароль</label>
      <input class="bx-auth-input"
        type="password"
        id="USER_PASSWORD"
        name="USER_PASSWORD"
        ng-model="password"
        ng-maxlength="30"
        required
        title="Пароль должен быть указан."
      />
      <div class="validation-errors" ng-cloak ng-show="AuthForm.USER_PASSWORD.$dirty && AuthForm.USER_PASSWORD.$invalid">
        <div ng-show="AuthForm.USER_PASSWORD.$error.maxlength">
          Пароль не должен быть длинее тридцати символов.				</div>
        <div ng-show="AuthForm.USER_PASSWORD.$error.required">
          Пароль должен быть указан.				</div>
      </div>
          </div>
    
    
          <div class="row">
        <input type="checkbox" id="USER_REMEMBER" name="USER_REMEMBER" value="Y" /><label for="USER_REMEMBER" style="position:relative;top:3px;">&nbsp;Запомнить меня на этом компьютере</label></td>
      </div>
    
    <div class="row">
      <div class="btn-holder" title="Еще не все поля заполнены!">
            	<div class="auth-btn"
          ng-class="{disabled: AuthForm.$valid==false}">
          <input class="sbm" type="submit" name="Login" value="Войти" />
        </div>
      </div>
    </div>
    
    <div class="my-br"></div>

          <div class="row">
        <noindex>
          <p>
            <a href="/ru/auth/index.php?forgot_password=yes&amp;backurl=%2Fru%2F" rel="nofollow">Забыли свой пароль?</a>
          </p>
        </noindex>
      </div>
    
          <div class="row">
        <noindex>
          <p>
            <a href="/ru/auth/index.php?register=yes&amp;backurl=%2Fru%2F" rel="nofollow">Зарегистрироваться</a><br />
            Если вы впервые на сайте, заполните, пожалуйста, регистрационную форму. 
          </p>
        </noindex>
      </div>
      </form>
</div>


Как правильно составить google-скрипт UrlFetchApp для авторизации в bitrix? тут мне подсказали, что надо использовать session_id который выдается при открытии формы авторизации, но я его там не вижу, получается его нет?

Я написал такой код в google apps script:

function myFunction() {
   
var params = {
'AUTH_FORM': 'Y',
'TYPE': 'AUTH',
'backurl': '/ru/auth/index.php',
'USER_LOGIN': 'login',
'USER_PASSWORD': 'pass',
'Login': 'Войти'
}
var response = UrlFetchApp.fetch('https://site.ru/ru/auth/index.php', params);
}


но авторизация не происходит, что неправильно в моём коде?

p.s. Это мне нужно для того, что бы:

Суть
На сайте находится база данных которая выводится в виде таблицы сверстанной на div`ах, которую мне нужно спарсить. Но вот проблема, в связи с тем, что таблица div`ная - я не могу просто взять выделить её и вставить в excel, например. Для этого я с помощью xpath сделал таблицу в google spreadsheets, которая парсит и раскладывает данные как мне надо. Тут возникла проблема: при авторизации открываются некоторые поля которые недоступны неавторизованному пользователю. Я нагуглил, что некоторые люди решали подобную проблему создавая Gscript авторизации через UrlFetchApp который привязывается к таблице и исполняется до момента начала парсинга.


может есть альтернативное решении?
  • Вопрос задан
  • 1834 просмотра
Пригласить эксперта
Ответы на вопрос 2
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы