URL в браузере открывается корректно, а в файл выводится только обрывок.
Код:
 import requests
from bs4 import BeautifulSoup
import pandas as pd
url = 'https://www.skyscanner.ru/transport/flights/mosc/znz/?adults=1&adultsv2=1&cabinclass=economy&children=0&childrenv2=&destinationentityid=39828399&inboundaltsenabled=false&infants=0&originentityid=27539438&outboundaltsenabled=false&preferdirects=false&preferflexible=false&ref=home&rtn=1&oym=2110&selectedoday=01&iym=2110&selectediday=01' # url страницы
r = requests.get(url)
with open('2.txt', 'w') as output_file:
  output_file.write(r.text)

Похоже, что сайт использует защиту от парсинга на JS. Что делать?

Получаю при парсинге:
 <!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="x-ua-compatible" content="ie=edge"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="theme-color" content="#000000"><link rel="manifest" href="./manifest.json"><link rel="shortcut icon" href="./favicon.ico"><title>Skyscanner</title><link rel="icon" href="/favicon.ico"><script type="text/javascript">window.__pageLoadedTime=Date.now()</script><link href="./static/css/main.83f6a466.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script src="./static/js/main.768c00c0.js"></script></body></html>