데이터 스크래핑 인증을 시도하는 동안 쿠키 오류

Prashant Padadune

truepush 웹 사이트에서 일부 데이터를 스크랩하려고하는데 먼저 인증을 받아야합니다. 그래서 여기에 내가하는 일이 있습니다 :

const loginUrl = 'https://app.truepush.com/api/v1/login'

let loginResult = await axios.get(loginUrl)
    .then(({ headers }, err) => {
        if (err) console.error(err);
        return headers['set-cookie'][0];
    })
    .then((cookie, err) => {
        if (err) console.error(err);
        const splitByXsrfCookieName = cookie.split("XSRF-TOKEN=")[1]
        return splitByXsrfCookieName.split(';')[0];
    }).then(xsrfToken => {
        return axios.post(loginUrl, {
            headers: {
                "Content-Type": "application/json",
                "X-XSRF-TOKEN": xsrfToken
            }
        })
    }).then(res => console.log(res))

두 번째 then응답에서 xrsfToken이 발생하고 해당 xsrf 토큰으로 세 ​​번째 응답으로 로그인하려고하면 다음 오류가 표시됩니다.

{
    "status_code": "XSRF-ERROR",
    "status": "ERROR",
    "message": "Cross domain requests are not accepting to this endpoint. If you cleared the cookies, please refresh your browser."
}

나는 내가 뭘 잘못하고 있는지 잘 모르겠습니다 :(

버트 랜드 마르텔

주요 문제는 호출시 원래 쿠키를 전송해야한다는 것입니다. set-cookie헤더 에서 가져온 원래 쿠키를 유지 cookie하고 두 번째 호출 에서 헤더에 전달해야합니다 cookie: originalCookie. 또한 코드에는 POST 호출에서 보낸 본문이 없습니다.

다음 코드는 로그인을 재현합니다.

const axios = require("axios");

const originalUrl = 'https://app.truepush.com';
const loginUrl = 'https://app.truepush.com/api/v1/login';

const email = "your-email@xxxxxx";
const password = "your-password";

(async () => {
    await axios.get(originalUrl)
        .then(({ headers }, err) => {
            if (err) console.error(err);
            const cookie = headers['set-cookie'][0];
            return {
                cookie: cookie,
                xsrfToken: cookie.split("XSRF-TOKEN=")[1].split(";")[0]
            };
        })
        .then((data, err) => {
            if (err) console.error(err);
            return axios.post(loginUrl, {
                "email": email,
                "password": password,
                "keepMeLoggedIn": "yes"
            }, {
                headers: {
                    "X-XSRF-TOKEN": data.xsrfToken,
                    "cookie": data.cookie
                }
            })
        })
        .then(res => console.log(res.data))
})();

산출:

{
  status_code: 'SUCCESS',
  status: 'SUCCESS',
  message: 'Login Successful',
  data: {
    id: 'xxxxxxxxxxxxxxxxxxx',
    name: 'xxxxx',
    email: 'xxxxxxx@xxxxxx'
  }
}

cookie둘 다 두 xsrfToken번째 약속에 의해 소비됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Laravel 5.2에서 수동 인증을 시도하는 동안 이상한 오류

분류에서Dev

웹 스크래핑 : BS4로 데이터 스크랩하는 동안 '\ n'태그 가져 오기

분류에서Dev

테이블 스크래핑을 시도 할 때 오류 발생

분류에서Dev

NULL 포인터를 증가시키는 동안 예상되는 분할 오류

분류에서Dev

MarkLogic 데이터베이스를 다시 인덱싱하는 동안 오류 발생

분류에서Dev

인덱스가있는 동안 Pandas 데이터 프레임 인덱싱 오류

분류에서Dev

노드 텍스트의 패턴을 일치 시키려고 시도하는 동안 오류 발생

분류에서Dev

웹 스크래핑을 위해 쿠키를 사용하여 인증 하시겠습니까?

분류에서Dev

쿠키에서 값을 읽는 동안 오류가 발생했습니다.

분류에서Dev

cheerio.js로 스크래핑하면 다음이 발생합니다. 오류 : 일시 중지 된 동안에 만 작업을 수행 할 수 있습니다.

분류에서Dev

Python에서 BeautifulSoup을 통해 스크래핑하는 동안 인증

분류에서Dev

데이터베이스에서 DropDownListFor 채우기를 시도하는 동안 오류가 발생했습니다.

분류에서Dev

Entity Framework 6 업데이트 데이터베이스에서 appdomain을 언로드하는 동안 오류 발생

분류에서Dev

hbitmap 데이터를 수정하는 동안 스택 오류

분류에서Dev

OWIN 쿠키 인증 사용시 데이터베이스없이 사용자 데이터 저장 / 검색

분류에서Dev

bnlearn 패키지로 예측을 시도하는 중 오류 발생-베이지안 네트워크

분류에서Dev

주소 표시 줄에 데이터가 표시됩니다. Selenium 및 Python을 통해 ChromeDriver Chrome을 사용하여 스크 레이 핑을 시도하는 동안

분류에서Dev

Amazon Web Services에서 Windows SQL Server의 t2.micro 인스턴스에 연결을 시도하는 동안 원격 데스크톱 연결 오류

분류에서Dev

데이터 프레임에서 막대 그래프를 그리는 동안 백분율을 표시하는 동안 오류가 발생했습니다.

분류에서Dev

Javascript를 사용하여 쿠키 값을 가져 오는 동안 오류가 발생했습니다.

분류에서Dev

Room 데이터베이스 라이브러리에서 Enum을 기본 키로 만드는 동안 오류가 발생했습니다.

분류에서Dev

Node.js 애플리케이션에서 Heroku 호스팅 Postgres 데이터베이스를 쿼리하는 동안 '자체 서명 된 인증서'오류

분류에서Dev

HTML (Php) 양식을 사용하여 MySQL 데이터베이스에 데이터를 추가하는 동안 PHP에서 정의되지 않은 색인 오류

분류에서Dev

데이터베이스 이름을 검색하는 동안 오류가 발생했습니다.

분류에서Dev

pushRaw를 시도하는 동안 AMQP 오류 : 정의되지 않은 인덱스 : 이름

분류에서Dev

외래 키 제한을 사용하는 동안 PHP를 사용하여 SQL 테이블에서 데이터를 가져 오기 위해 mysql_num_rows ()를 사용하는 동안 오류가 발생했습니다.

분류에서Dev

nbackup을 사용하여 Firebird 데이터베이스를 복원하는 동안 오류 80

분류에서Dev

SQL 파일을 새 MariaDB 데이터베이스로 가져 오는 동안 오류가 발생했습니다.

분류에서Dev

데이터베이스에서 webdriver로 URL을 전달하는 동안 오류가 발생했습니다.

Related 관련 기사

  1. 1

    Laravel 5.2에서 수동 인증을 시도하는 동안 이상한 오류

  2. 2

    웹 스크래핑 : BS4로 데이터 스크랩하는 동안 '\ n'태그 가져 오기

  3. 3

    테이블 스크래핑을 시도 할 때 오류 발생

  4. 4

    NULL 포인터를 증가시키는 동안 예상되는 분할 오류

  5. 5

    MarkLogic 데이터베이스를 다시 인덱싱하는 동안 오류 발생

  6. 6

    인덱스가있는 동안 Pandas 데이터 프레임 인덱싱 오류

  7. 7

    노드 텍스트의 패턴을 일치 시키려고 시도하는 동안 오류 발생

  8. 8

    웹 스크래핑을 위해 쿠키를 사용하여 인증 하시겠습니까?

  9. 9

    쿠키에서 값을 읽는 동안 오류가 발생했습니다.

  10. 10

    cheerio.js로 스크래핑하면 다음이 발생합니다. 오류 : 일시 중지 된 동안에 만 작업을 수행 할 수 있습니다.

  11. 11

    Python에서 BeautifulSoup을 통해 스크래핑하는 동안 인증

  12. 12

    데이터베이스에서 DropDownListFor 채우기를 시도하는 동안 오류가 발생했습니다.

  13. 13

    Entity Framework 6 업데이트 데이터베이스에서 appdomain을 언로드하는 동안 오류 발생

  14. 14

    hbitmap 데이터를 수정하는 동안 스택 오류

  15. 15

    OWIN 쿠키 인증 사용시 데이터베이스없이 사용자 데이터 저장 / 검색

  16. 16

    bnlearn 패키지로 예측을 시도하는 중 오류 발생-베이지안 네트워크

  17. 17

    주소 표시 줄에 데이터가 표시됩니다. Selenium 및 Python을 통해 ChromeDriver Chrome을 사용하여 스크 레이 핑을 시도하는 동안

  18. 18

    Amazon Web Services에서 Windows SQL Server의 t2.micro 인스턴스에 연결을 시도하는 동안 원격 데스크톱 연결 오류

  19. 19

    데이터 프레임에서 막대 그래프를 그리는 동안 백분율을 표시하는 동안 오류가 발생했습니다.

  20. 20

    Javascript를 사용하여 쿠키 값을 가져 오는 동안 오류가 발생했습니다.

  21. 21

    Room 데이터베이스 라이브러리에서 Enum을 기본 키로 만드는 동안 오류가 발생했습니다.

  22. 22

    Node.js 애플리케이션에서 Heroku 호스팅 Postgres 데이터베이스를 쿼리하는 동안 '자체 서명 된 인증서'오류

  23. 23

    HTML (Php) 양식을 사용하여 MySQL 데이터베이스에 데이터를 추가하는 동안 PHP에서 정의되지 않은 색인 오류

  24. 24

    데이터베이스 이름을 검색하는 동안 오류가 발생했습니다.

  25. 25

    pushRaw를 시도하는 동안 AMQP 오류 : 정의되지 않은 인덱스 : 이름

  26. 26

    외래 키 제한을 사용하는 동안 PHP를 사용하여 SQL 테이블에서 데이터를 가져 오기 위해 mysql_num_rows ()를 사용하는 동안 오류가 발생했습니다.

  27. 27

    nbackup을 사용하여 Firebird 데이터베이스를 복원하는 동안 오류 80

  28. 28

    SQL 파일을 새 MariaDB 데이터베이스로 가져 오는 동안 오류가 발생했습니다.

  29. 29

    데이터베이스에서 webdriver로 URL을 전달하는 동안 오류가 발생했습니다.

뜨겁다태그

보관