从 Python 中的 Unicode Web Scrape 输出 ascii 文件

2024-03-11

我是 Python 编程新手。我在 Python 文件中使用以下代码:

import gethtml
import articletext
url = "http://www.thehindu.com/news/national/india-calls-for-resultoriented-steps-at-asem/article5339414.ece"
result = articletext.getArticle(url)
text_file = open("Output.txt", "w")

text_file.write(result)

text_file.close()

文件articletext.py包含以下代码:

from bs4 import BeautifulSoup
import gethtml
def getArticleText(webtext):
    articletext = ""
    soup = BeautifulSoup(webtext)
    for tag in soup.findAll('p'):
        articletext += tag.contents[0]
    return articletext

def getArticle(url):
    htmltext = gethtml.getHtmlText(url)
    return getArticleText(htmltext)

但我收到以下错误:

UnicodeEncodeError: 'ascii' codec can't encode character u'\u201c' in position 473: ordinal not in range(128)
To print the result into the output file, what proper code should I write ?

The output `result` is text in the form of a paragraph.

为了解决 unicode 错误,我们需要将文本编码为 un​​icode(准确地说是 UTF-8)而不是 ascii。为了确保在出现编码错误时不会抛出错误,我们将忽略没有映射的任何字符。 (您还可以使用“替换”或 str.encode 提供的其他选项。请参阅此处有关 Unicode 的 Python 文档。 http://docs.python.org/2/howto/unicode.html#the-unicode-type)

打开文件的最佳实践是使用 Python 上下文管理器,即使出现错误,它也会关闭文件。我在路径中使用斜杠而不是反斜杠,以确保它可以在 Windows 或 Unix/Linux 中工作。

text = text.encode('UTF-8', 'ignore')
with open('/temp/Out.txt', 'w') as file:
    file.write(text)

这相当于

text = text.encode('UTF-8', 'ignore')
try:
    file = open('/temp/Out.txt', 'w')
    file.write(text)
finally:
    file.close()

但上下文管理器的冗长程度要低得多,并且不太可能导致您在错误期间锁定文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Python 中的 Unicode Web Scrape 输出 ascii 文件 的相关文章

随机推荐

  • SplashScreen java 更改 alpha

    我正在循环遍历一些 png 来为 java 启动画面创建动画 我用这个开始动画 java splash images anim png SplashDemo 并在类中使用 png 您可以在这里找到该课程 http pastebin com
  • 使用 javascript 设置隐藏字段的值,然后从服务器端 C# 代码访问值

    我正在使用一个嵌套的 html 无序列表 样式为下拉列表 当单击内部列表列表项中的 a 标记时 它会触发一些 JavaScript 该 JavaScript 应该将隐藏字段的值设置为所单击链接的文本 javascript 似乎可以工作 我使
  • 在没有 Spring Security 的情况下保留 Spring 会话

    我正在寻求帮助来配置 Spring Boot 以在不使用 Spring Security 的情况下保留 Spring 会话 我从HttpSession JDBC Spring Boot 示例应用程序 https github com spr
  • 在 SQL Server 中,如何使用系统表/视图识别特定表的*所有*依赖关系?

    我正在编写一个 DDL 脚本来删除多个表 但需要首先确定这些表的所有依赖项 这些依赖项包括外键约束 存储过程 视图等 最好 我想在删除依赖表之前使用系统表 视图以编程方式编写脚本来删除这些依赖项 从头开始编写这非常混乱 您是否考虑过像这样的
  • 枚举值“”对于类型>“EnumType”无效并且无法序列化

    当使用 DataContractSerializer 编写具有如下成员的 DataContract 时 DataMember public PropertyId PropId get set 它报告序列化错误 SerializationEx
  • Angular2 是否有相当于 $document 的东西

    我已经开始研究 Angular2 并拥有 3 个嵌套组件的基本功能 但是我无法弄清楚如何将按键处理程序添加到文档中 如果没有 我将如何监听文档上的按键并做出反应 需要明确的是 我需要响应文档本身的 kepyress 而不是输入 在 Angu
  • Bootstrap 侧边栏滚动、附加和滚动监视

    NEWER 所以滚动现在正在工作 但它固定在页面顶部 我需要它位于正确的位置 内容旁边 然后开始在内容的当前位置滚动 我正在尝试让我的侧边栏像这里一样滚动 gt http getbootstrap com 2 3 2 components
  • 为什么 JavaScript 中的数组显示错误长度

    我正在学习 JavaScript 作为学习的一部分 我遇到了以下场景 我期望 a1 length 代码的最后一行 显示 201 但它显示 101 有什么想法吗 var a1 new Array for var i 100 i lt 100
  • NativeScript:如何禁用 WebView 中的缩放控件?

    我从以下问题中找到了在 Android WebView 中启用 禁用缩放控件的方法 如何删除Android webview上的缩放按钮 https stackoverflow com questions 10766669 how to re
  • 在 R/igraph 中可视化具有 3 层(三方)的图/网络

    我有一个 分层 网络 有 3 层 比如说父母 P 孩子 C 孙子 G 边缘总是指向年轻一代 专利 gt 子代 子代 gt 孙子或父代 gt 孙子 同一代中的顶点之间没有边 该图由 3 个边列表 P C C G P C 表示 下面给出一个简短
  • 无法在 gdal 中加载“gcs.csv”文件

    这个问题可能会重复 但我没有得到答案 我已经在 python ide 中编写了流动代码 out srs osr SpatialReference self out srs ImportFromEPSG 4326 它运行良好 但是当我从应用程
  • Corda:在一个流程中创建和使用相同的状态?

    是否可以在一个流中创建和使用相同的 corda 状态 或者在不同的子流中创建和使用它 我收到以下错误 Caused by net corda core flows NotaryException Unable to notarise tra
  • 在jquery中获取ruby值[重复]

    这个问题在这里已经有答案了 我有一个文本区域 在其中填充数据库记录 我想在 jquery 的 textarea 中访问相同的值
  • xml序列化c#

    无法理解我做错了什么 结果集是空的 我的代码 class Class1 public static object DeSerialize object resultObject XmlSerializer serializer new Xm
  • Android 推送通知状态检查

    用户可以在更高版本的 Android 中为应用程序禁用推送通知 应用程序有什么方法可以知道用户在设置中禁用了推送通知 看这里 http developer android com google gcm adv html unreg http
  • 如何在两个 docker 容器之间进行 nginx 反向代理负载平衡?

    我尝试使用相同的 Nodejs 应用程序在两个容器之间建立 nginx 反向代理负载平衡 目录结构 docker compose yml nginx nodejs index js php docker compose yml versio
  • Angular 2 - 将文件发布到 Web API

    我试图从 Angular 2 应用程序将文件传递到 Web API 但实际的文件数据未发送 这是我的 Angular 2 服务代码 var headers new Headers headers append Content Type mu
  • OpenFileDialog() 锁定文件夹

    I use OpenFileDialog 在我的 Silverlight 应用程序中 当我使用选择文件时ShowDialog 它只是锁定文件 直到我关闭我的应用程序 应用程序运行时我无法重命名或删除文件夹 浏览器中的 silverlight
  • 批量变量赋值

    这个问题似乎 非常 愚蠢 我无法处理它 当我尝试这个批处理代码时 if 1 i set is 2 echo is shift 使用 2 个 或更多 参数调用 它不起作用 它实际上打印出一个空白 shift 命令也没有完成 当我观看执行的代码
  • 从 Python 中的 Unicode Web Scrape 输出 ascii 文件

    我是 Python 编程新手 我在 Python 文件中使用以下代码 import gethtml import articletext url http www thehindu com news national india calls