pandas read_csv에서 사용자 에이전트 설정

2312 단어 python
다른 팬더 작업을 빠르게 시도하기 위해 내 웹사이트에 작은cars.csv을 유지합니다. 익숙하지 않은 메서드가 수행하는 작업을 돕거나 팀원에게 복제할 수 있는 예제를 제공하기 위해 주변에 보관하는 것이 매우 편리합니다.

호스트 전환됨



최근에 netlify에서 cloudflare로 호스팅을 전환했습니다. Cloudflare는 실제 사용자라고 생각하지 않는 특정 요청을 차단하기 위해 일부 작업을 수행합니다. 이러한 검사 중 하나는 요청에 실제 사용자 에이전트가 있는지 확인하는 것입니다.

데이터 세트로 이동하지 않음 😭



이것은 예제 데이터 세트로 이동하는 것을 중단합니다.

pd.read_csv("https://waylonwalker.com/cars.csv")

# HTTPError: HTTP Error 403: Forbidden


그러나 요청이 작동합니까 ???



이상한 점은 요청이 여전히 잘 작동한다는 것입니다! pandas가 요청을 중단하는 방식으로 urllib를 사용하는 이유는 확실하지 않지만 그렇게 합니다.

requests.get("https://waylonwalker.com/cars.csv")

<Response [200]>


pandas.read_csv에서 사용자 에이전트 설정



이것은 나를 위해 문제를 해결했습니다!

약간의 인터넷 검색 후 이것이 일반적인 일이며 사용자 에이전트를 설정하면 문제가 해결된다는 것을 깨달았습니다. 이것은 Cloudflare Dashbard에서 그들이 다양한 공격으로부터 보호하는 것을 본 기억이 나는 지점입니다. pd.read_csv를 내 Cloudflare 페이지 사이트에 대한 공격으로 처리합니다.

pd.read_csv("https://waylonwalker.com/cars.csv", storage_options = {'User-Agent': 'Mozilla/5.0'})

# success


이제 내 데이터가 돌아왔습니다



이제 다시 작동하지만 손으로 ​​하려는 것보다 약간 더 많은 노력이 필요한 것 같습니다. pd.read_csv에서 이 데이터 세트에 액세스하도록 허용할 수 있는지 확인하려면 내 cloudflare 설정을 살펴봐야 할 수도 있습니다.

좋은 웹페이지 즐겨찾기