さまざまな Web サイトからニュースを自動的に取得するのに役立つ Python プログラムを作成しようとしています。現時点では、python3 と Beautifulsoup4 および urllib3 を使用して、リモート ページを取得して解析しています。
このページからテキストを読み込もうとすると、À à é ó... などの非 ASCII 文字が含まれているため、問題が発生します。
ページを取得して変数に入れ、ファイルに書き込む直後にutf-8からページをデコードしようとしましたが、成功しませんでした...そして、この問題にアプローチする別の方法を読んだ後でも、私は理解できませんでした実用的なソリューション。
あなたの誰かが私と同じ状況にあったかどうか疑問に思っていました..
これが私のコードです
# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import urllib3
http = urllib3.PoolManager()
req = http.request('GET', 'http://www.....')
page = req.data.decode('utf-8')
soup = BeautifulSoup(page)
elements = soup.find_all('div', class_='content')
fp = open('results.xml', 'a')
for element in elements:
link = element.find('a')
descr = element.find('div', class_='description')
v_link = u'%s' % link.get('href')
v_description = u'%s' % descr.text
xml = "<news>\n"
xml = xml+ " <description>"+ v_description+ "</description>\n"
xml = xml+ " <page_link>"+ v_link+ "</page_link>\n"
xml = xml+ "</news>\n"
fp.write(xml+ '\n')
#END FOR LOOP
fp.close()