2016-07-04 3 views
-1
`self.urlOpen=urllib.request.urlopen("http://facebook.com") 
    self.content=self.urlOpen.read() 
    soup=BeautifulSoup(self.content,"html5lib") 
    self.links=soup.find_all("a")` 
위치에 문자를 인코딩 할 수

'문자표'코덱 ....BeautifulSoup encoding.bytes에는 find_all이라는 속성이 없습니까?

그래서 내가 self.urlOpen=urllib.request.urlopen("http://facebook.com") self.content=self.urlOpen.read() soup=BeautifulSoup(self.content,"html5lib") soup=soup.encode("utf-8") self.links=soup.find_all("a")

'바이트'개체가이

수프 변수를 인코딩 할 때 find_all이라는 속성이 없음

시도했습니다. self.urlOpen=urllib.request.urlopen("http://facebook.com") self.content=self.urlOpen.read() soup=BeautifulSoup(self.content.decode("utf-8","ignore"),"html5lib") self.links=soup.find_all("a")

하지만 같은 오류 내가 그것을 인코딩하는 방법을 다음

발생?

+0

디버깅 도움말을 요청할 때 전체 추적을 포함하십시오. –

+0

또한'soup.encode ('utf-8')'(바이트 문자열 생성) (https://www.crummy.com/software/BeautifulSoup/bs4/doc/#non-pretty-printing) 아웃 물론, find_all() 메소드가 없다. –

+0

당신은 아마 [이] (http://stackoverflow.com/questions/14284269/why-doesnt-python-recognize-my-utf-8-encoded-source-file)로 고통 받고 있습니다 : 당신의 터미널은 처리 할 수 ​​없습니다 출력 대신에 beautifulsoup 등의 문제가 있습니다. –

답변

0

무엇이 문제입니까?
find_all은 인코딩 오류를 던져서는 안되며 객체에 encode을 호출하면 안됩니다. encode은 수퍼 태그가 아니므로 바이트를 반환합니다. - find_all에 전화 할 수 없습니다.

어디서나 soup.prettify()을 사용하고 있습니까? 이 경우 아마도 오류가 발생하는 줄입니다. 코드의 Minimal, Complete and Verifiable example을 포함 시키십시오.

+0

아니 iam soup.prettify() –

+0

하지만 내 질문은 그것을 사용하여 find_all 호출 할 수 있도록 인코딩하는 방법입니다. –

+1

* * find_all 사용할 수 있어야합니다. 코드의 대표적인 예와 오류 메시지의 전체 추적을 게시하십시오. – Nee