400 오류는 서버가 요청 (예 : 형식이 잘못된 구문)을 이해할 수 없음을 의미합니다. 즉, 개발자가 상태 코드를 반환하기를 원하는지, 불행히도 모든 사람이 의도 한 의미를 엄격하게 따르는 것은 아닙니다.
HTTP 상태 코드에 대한 자세한 내용은 page을 확인하십시오.
사용자 에이전트를 설정하는 방법 : 사용자 에이전트는 요청 헤더에 설정되며 기본적으로 요청하는 클라이언트를 정의합니다. 다음은 인정 된 User Agents의 목록입니다. urllib
대신 urllib2
을 사용해야하지만 urllib2
도 기본 제공 패키지입니다. 이 모듈을 사용하여 헤더를 설정하기 위해 getBuilding
함수를 업데이트하는 방법을 알려 드리겠습니다. 그러나 requests 라이브러리를 확인하는 것이 좋습니다. 나는 단지 그것이 곧장 앞으로 나아갈 수 있다는 것을 알게되고 그것은 매우 채택/지원된다.
파이썬 2 :
from urllib2 import Request, urlopen
def getBuilding(link):
q = Request(link)
q.add_header('User-Agent', 'Mozilla/5.0')
r = urlopen(q).read()
soup = BeautifulSoup(r, "html.parser")
print(soup.find("b",text="KEYWORDS IM SEARCHING FOR GO HERE:").find_next("td").text)
파이썬 3 :
from urllib.request import Request, urlopen
def getBuilding(link):
q = Request(link)
q.add_header('User-Agent', 'Mozilla/5.0')
r = urlopen(q).read()
soup = BeautifulSoup(r, "html.parser")
print(soup.find("b",text="KEYWORDS IM SEARCHING FOR GO HERE:").find_next("td").text)
참고 : 파이썬 v2 및 v3의 사이의 유일한 차이는 import 문이다.
코드를 독자적으로 실행했기 때문에 서버가 사용자 에이전트에만 기반한 요청을 중단하고있는 것은 아닌지 의심 스럽습니다. 더 많은 가능성이 귀하의 클라이언트 또는 귀하의 요청을 건설하는 방법에 버그가 제한 속도입니다 ... 당신은 귀하의 링크 및 파일에서 샘플 라인에 대한 실제 코드를 넣어 주시겠습니까? –
내일 아침에 다시 연락 드리겠습니다! – Harrison