【发布时间】:2014-11-09 22:48:54
【问题描述】:
我正在尝试编写一个 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()
【问题讨论】:
-
你有一些示例网址吗?
-
"问题出来了" 究竟是什么问题?有错误吗?它是什么?在哪条线上?
标签: python python-3.x encoding beautifulsoup urllib3