여기에서 프로그램 데이터를 반환하는 API에 액세스하려고합니다.페이지 아래로 스크롤하면 새 타일이 화면에 표시됩니다. Chrome 도구를 살펴보면 API가 호출되는 것을 발견하고 다음 요청 스크립트를 작성했습니다.
import requests
session = requests.session()
url = 'https://ie.api.atom.nowtv.com/adapter-atlas/v3/query/node?slug=/entertainment/collections/all-entertainment&represent=(items[take=60](items(items[select_list=iceberg])))'
session.headers = {
'Host': 'https://www.nowtv.com',
'Connection': 'keep-alive',
'Accept': 'application/json, text/javascript, */*',
'X-Requested-With': 'XMLHttpRequest',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36',
'Referer': 'https://www.nowtv.com',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'en-GB,en-US;q=0.9,en;q=0.8'
}
scraper = cloudscraper.create_scraper(sess=session)
r = scraper.get(url)
data = r.content
print(data)
session.close()
다음 만 반환됩니다.
b'<HTML><HEAD>\n<TITLE>Invalid URL</TITLE>\n</HEAD><BODY>\n<H1>Invalid URL</H1>\nThe requested URL "[no URL]", is invalid.<p>\nReference #9.3c0f0317.1608324989.5902cff\n</BODY></HTML>\n'
문제는 중괄호로 묶인 URL의 끝 부분이라고 가정합니다. 그러나 Requests 호출에서이를 처리하는 방법을 잘 모르겠습니다. 누구든지 올바른 구문을 제공 할 수 있습니까?
감사
- 답변 # 1
관련 자료
- 요청을 사용하여 Python의 curl에서 API에서 데이터 가져 오기
- Python의 INVALID 리터럴이 제거되지 않음
- embedded - python을 사용하는 trace32 - t32_readmemoryobj 함수에서 반환 데이터를 해석하는 방법
- android - Paging 3을 사용하여 많은 API 요청을 처리하는 방법
- Python Flask에서 CSS 사용
- function - 괄호 대신 $를 사용하는 Haskell은 유효하지 않습니다
- 명령 줄을 사용하지 않고 파이썬 파일을 실행할 수있는 방법이 있습니까?
- pysocks python을 사용하여 https reuqest를 보내는 방법
- flux - Python을 사용하여 Influxdbv2 데이터를 쿼리 할 수없는 이유는 무엇입니까?
- For 루프, 논리 오류를 사용하여 파이썬에서 정수 반복
- python (python -m httpserver)을 사용하여 로컬 서버에서 html 파일을 열려면 어떻게해야합니까?
- pip - ctypes를 사용하여 파이썬 모듈 만들기
- 항상 두 번째 항목을 제외하고 셀레늄 Python을 사용하여 웹 요소를 반복합니다
- 파이썬을 사용하여 파일의 특정 줄을 삭제하는 방법은 무엇입니까?
- Python Requests POST - python이 post를 요청합니다400 - python 요청이있는 잘못된 요청
- Turtle을 사용하여 Python에서 x/y 좌표를 일치시키기 위해 if 문 사용
- Python argparse를 사용하여 명령 줄 문제를 해결하는 방법은 무엇입니까?
- C #을 사용한 사용자 입력 후 Python 출력을 C #에 표시
- json - 파이썬을 사용하여 사전 객체를 어떻게 삭제할 수 있습니까?
문제는
<시간 />Host
세션 헤더 값, 설정하지 마십시오.충분합니다. 그러나 몇 가지 추가 작업도 수행했습니다.
추가
X-*
헤더 :XHR 헤더를 설정하지 않고 더 넓은
Accept
헤더 값 :나는 또한 사용했다
params
GET 매개 변수의 경우-할 필요가 없다고 생각합니다. 더 깨끗합니다.