파이썬 웹 스크래핑에서 proxy를 통한 https 액세스가 requests를 사용하면 쉬웠습니다.
4779 단어 웹 스크래핑파이썬요청BeautifulSoup
이전에는 프록시가 있기 때문에 통신 오류가 발생하는 것을 해결했습니다.
파이썬 웹 스크래핑에서 프록시 설정으로 인해 응답이 없을 때 해결
http에 의한 통신은 상기의 방법으로 잘 되었지만, https의 사이트가 되었을 때에 통신이 확립되지 않고 에러가 되어 버렸습니다.
최근 웹사이트는 https가 많기 때문에 곤란했습니다. .
전회의 방법으로 아래와 같이 proxies에 "https"의 항목을 추기해도 해결되지 않습니다.
proxies={"http":"http:proxy.-----.co.jp/proxy.pac",
"https":"http:proxy.-----.co.jp/proxy.pac"}
조사하고 있으면, requests 라는 라이브러리가 있었습니다. urllib 대신 사용할 수 있는지 시도해 보면 놀랍도록 쉽게 해결되었습니다.
사용법 예는 다음과 같습니다.
requsts_sample.py
import requests
proxies = {
"http":"http://proxy.-----.co.jp/proxy.pac",
"https":"http://proxy.-----.co.jp/proxy.pac"
}
r = requests.get('https://github.com/timeline.json', proxies=proxies)
print(r.text)
Beautifulsourp 를 사용하는 경우는, requests.get 로 취득한 오브젝트의 content 를 건네주면 되는 것 같습니다.
간단한 샘플을 보여줍니다.
import requests
from bs4 import BeautifulSoup
proxies = {
'http':'http://proxy.-----.co.jp/proxy.pac',
'https':'http://proxy.-----.co.jp/proxy.pac'
}
def getBS(url):
html = requests.get(url, proxies=proxies)
bsObj = BeautifulSoup(html.content, "html.parser")
return bsObj
htmlSource = getBS("https://en.wikipedia.org/wiki/Kevin_Bacon")
# ページに存在するリンク先を表示する
for link in htmlSource.findAll("a"):
if 'href' in link.attrs:
print(link.attrs['href'])
requests 라이브러리는 Anaconda에서 Python 3.5.2를 설치할 때 들어있었습니다.
Anaconda Navigator에서 설치한 패키지를 확인할 수 있습니다. Windows에서 GUI를 설치한 경우 Windows->모든 프로그램->Anaconda3->Anaconda Navigator에 있습니다.
requests 라이브러리의 Quickstart는 이쪽
Reference
이 문제에 관하여(파이썬 웹 스크래핑에서 proxy를 통한 https 액세스가 requests를 사용하면 쉬웠습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/koharite/items/731fcf5146c7b0c4e800텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)