• Как в axios сделать подобный url?

    Lynn
    @Lynn
    nginx, js, css
    https://github.com/axios/axios/#request-config

    Нужно использовать paramsSerializer.indexes

    Configuration for formatting array indexes in the params.
    Three available options:
    (1) indexes: null (leads to no brackets),
    (2) (default) indexes: false (leads to empty brackets),
    (3) indexes: true (leads to brackets with indexes).


    axios.get('https://api.kinopoisk.dev/v1.4/movie', {
      params: {
        page: page,
        limit: limit,
        notNullFields: ['poster.url', 'movieLength']
      },
      paramsSerializer: {
        indexes: null
      }
    });
    Ответ написан
    1 комментарий
  • Как лучше переписать условие?

    @null_object
    export const Footer = (props?: IFooterProps) => {
        return (
            <View style={styles.container}>
                {props && props.button ? (
                  <>
                     <RNHoleView style={styles.background} holes={[hole]}>
                          <View style={styles.maskBorder}></View>
                      </RNHoleView>
                      {props.button}
                   </>
                ) : (
                  <View style={styles.background}></View>
                )}
            </View>
        );
    };
    Ответ написан
    3 комментария
  • Можно ли положить сложный TodoApp в портфолио?

    1. Наличие портфолио не решит твою проблему.
    2. Просто не называй это приложение todo-app
    Ответ написан
    2 комментария
  • Ошибка при скачивании pdf-файлов, как исправить?

    Vindicar
    @Vindicar
    RTFM!
    Легко проверить. Ты делаешь:
    url = "https://file.11klasov.net/index.php?do=download&id=16985" # замените на URL файла, который вы хотите скачать
    response = requests.get(url)

    Затем посмотри атрибут response.history, и ты увидишь там два ответа: [<Response [302]>, <Response [301]>]. Все коды 3XX - это перенаправления, т.е. сайт тебя перенаправляет на другую страницу, вместо того, чтобы отдать контент.
    Итог этих перенаправлений можно узнать из response.url, который будет равен
    'https://file.11klasov.net/13938-russkij-jazyk-7-klass-razumovskaja-mm-lvova-si-kapinos-vi-i-dr.html'

    Т.е. сайт задетектил бота, и отправил тебя на страницу учебника. Так обычно борятся с хотлинкингом, когда кто-то ставит прямую ссылку на файл на твоём сайте.
    Также можно проверить response.headers['content-type']. Он будет 'text/html; charset=utf-8', т.е. это HTML страница а не PDF файл. Разумеется, если ты HTML страницу запишешь в файл с расширением .pdf, она от этого не станет валидным PDF.

    Обычно проверяются две вещи: User-Agent и Referer. Первый описывает браузер пользователя, второй - с какой страницы был переход по этой ссылке. Но для данного сайта, похоже, достаточно добавить только Referer вот так:
    response2 = requests.get(url, headers={
        'referer': response.url,  # ну или 'https://file.11klasov.net/13938-russkij-jazyk-7-klass-razumovskaja-mm-lvova-si-kapinos-vi-i-dr.html'
    })

    То получишь желаемое - response2.history будет пустой, а response2.headers['content-type'] будет равен 'application/pdf'.

    С учётом этого можешь поправить свой код, чтобы он детектил редирект и делал второй запрос с заголовком Referer.
    Ответ написан
    Комментировать