请求测试.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. # import requests
  2. from curl_cffi import requests
  3. import retrying
  4. headers = {
  5. "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
  6. "accept-language": "zh-CN,zh;q=0.9",
  7. "cache-control": "no-cache",
  8. "pragma": "no-cache",
  9. "priority": "u=0, i",
  10. "referer": "https://booking.jetstar.com/",
  11. "sec-ch-ua": "\"Google Chrome\";v=\"135\", \"Not-A.Brand\";v=\"8\", \"Chromium\";v=\"135\"",
  12. "sec-ch-ua-mobile": "?0",
  13. "sec-ch-ua-platform": "\"Windows\"",
  14. "sec-fetch-dest": "document",
  15. "sec-fetch-mode": "navigate",
  16. "sec-fetch-site": "same-origin",
  17. "sec-fetch-user": "?1",
  18. "upgrade-insecure-requests": "1",
  19. "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36"
  20. }
  21. cookies = {
  22. "bm_sz": "80764634952076F4EC0668CAE470DF02~YAAQh6InF+vHy7OWAQAAPBkxtBvjipCr2+Be8lQpPuukMutGdZhmvPLcnZxIE0H2SW8teLqWp1Pvw21yJC+5YdaIKtxfxi0OuJ8v+NYVJhYGUTIhe0PpH/U5LLuwLSHz3U/e4AhvEklMvEWDUPGyGsBVUktXU8G4WhSk0rur3qSc/ytEzR8U/oP3quyUwtlFgX8liYL6uhvWEY+4yRjnhaJykTIt7Fw+BhWNVvF8jKtn7usSkqm6oi+S3zSEZD8iBZolfvNCsmuZ3lD+PNlG8zH3hSiQAvC5vCPcskk6AONlJP2URQVkirgZzORWdM0+Uit7lyqEmossKcSdxITkS4amRpXnUN97PSG1Lji0j0JrytJAC2PP0VUlqtSgn0k/iTLz2+L498HNB0VpoSrW8lTry8jtixmFJ+c/iUiFWW6jvqZWAG6p01J+v95zmkX3vmkN2aR5p74UHxyBxm/Y4ZRlbgSj34TS+Z6erY/ezT0Xp9coSt7+mf2LntSVpSlxj4ZA54Pn5pN9oaPqtm1/Xz6kkYH43DIKXhoUghwV/YcKUeeF2bowXCWCbGVGkg==~3425331~3687985",
  23. }
  24. url = "https://booking.jetstar.com/hk/zh/booking/search-flights"
  25. @retrying.retry(stop_max_attempt_number=1)
  26. def req(i):
  27. params = {
  28. "s": "true",
  29. "adults": "1",
  30. "children": "0",
  31. "infants": "0",
  32. "selectedclass1": "economy",
  33. "currency": "CNY",
  34. "mon": "true",
  35. "channel": "DESKTOP",
  36. "origin1": "PVG",
  37. "destination1": "NRT",
  38. "departuredate1": f"2025-05-{i}"
  39. }
  40. response = requests.get(url, headers=headers, cookies=cookies, params=params,
  41. timeout=15,
  42. verify=False,
  43. # proxies=proxies
  44. # allow_redirects=False
  45. http_version=2
  46. )
  47. # print(response.text)
  48. print(response)
  49. from lxml import etree
  50. import json
  51. html = etree.HTML(response.text)
  52. data = html.xpath("//script[@id='bundle-data-v2']/text()")[0] if html.xpath(
  53. "//script[@id='bundle-data-v2']/text()") else '{}'
  54. json_data = json.loads(data)
  55. print(json_data)
  56. for i in range(9, 31):
  57. req(i)