2016-08-07 1 views
2

파이썬에서 아름다운 스프를 사용하여 문자열을 포함한 모든 요소를 ​​찾고 싶습니다.페르시아어 문자열을 사용하는 아름다운 스프 찾기

페르시아어가 아닌 문자를 사용할 때는 작동하지만 페르시아어 문자를 사용하면 작동하지 않습니다. 위의 코드에 대한

from bs4 import BeautifulSoup 
QUERY = 'رشته فارسی' 
URL = 'http://www.example.com' 
headers = { 
    'User-Agent': "Mozilla/5.0 . . . " 
} 
request = urllib2.Request(URL, headers=headers) 
response = urllib2.urlopen(request) 
response_content = response.read().decode('utf8') 
soup = BeautifulSoup(response_content, 'html.parser') 
fetched = soup.find_all(text=QUERY) 
print(fetched) 

는, 출력은 [],하지만 난 쿼리에서 ASCII를 사용하는 경우 작동합니다.

UTF-8 변환 또는 해결할 항목이 있습니까? :)

+0

페이지의 인코딩과 일치해야합니다 –

+0

@PadraicCunningham 어떻게 할 수 있습니까? – masoud

+0

utf8 대신 utf-8 또는 UTF-8을 사용해서는 안됩니까? –

답변

1
#-*- coding: utf-8 -*- 
    import urllib2 
    from bs4 import BeautifulSoup 
    QUERY = 'خدمات' 
    URL = 'https://bayan.ir/service/bayan/' 
    headers = { 
      'User-Agent': "Mozilla/5.0 . . . " 
    } 
    request = urllib2.Request(URL, headers=headers) 
    response = urllib2.urlopen(request) 
    response_content = response.read() 
    soup = BeautifulSoup(response_content, 'html.parser') 
    fetched = soup.find_all(string=QUERY) 
    print(fetched) 

작동합니다!

+0

** 정확한 문자열을 보내야합니다 ** [BeautifulSoup] (https://www.crummy.com/software/BeautifulSoup/bs4/doc/#the-string-argument)를 확인하십시오. – RaminNietzsche

관련 문제