使用python屏幕抓取网页时,必须知道网页的字符编码。 如果您输入的字符编码错误,则输出将被弄乱。
人们通常使用一些基本技术来检测编码。他们要么使用标头中的字符集,要么使用meta标签中定义的字符集;或者使用编码检测器(它不关心meta标签或标头)。通过仅使用这些技术中的一种,有时您将无法获得与浏览器相同的结果。
浏览器以这种方式执行此操作:
(嗯……至少我相信大多数浏览器都是这样做的。文档确实很少。)
我正在寻找的是一个可以像浏览器一样确定页面字符集的库。 我确定我不是第一个需要适当解决此问题的人。
根据Beautiful
Soup的文档
。
Beautiful Soup会按照优先级顺序尝试以下编码,以将您的文档转换为Unicode:
我将为此使用html5lib。
问题内容: 以编程方式确定输入流/文件的正确字符集编码的最佳方法是什么? 我尝试使用以下方法: 但是在我知道要用ISO8859_1编码的文件上,上面的代码会产生ASCII,这是不正确的,并且不允许我将文件的内容正确地呈现回控制台。 问题答案: 无法确定任意字节流的编码。这就是编码的本质。编码是指字节值与其表示形式之间的映射。因此,每种编码“都可以”是正确的。 的getEncoding()方法将返回
问题内容: 您好,我正在尝试从网页下载图像。我正在尝试从“ http://www.yahoo”主页下载该图像。请告诉我如何传递“ http://www.yahoo”作为输入。以及在打开此网页时如何从该页面获取图像。请给我Java代码以从网页获取图像。 问题答案: (throws IOException) 请参阅包装以获取更多信息。那是使用AWT图片。否则,您可以执行以下操作: 然后您可能想要保存图
问题内容: 我正在将软件从Python重写为Go。我在提取编码为的页面时遇到问题。Python版本正在运行,但Go版本中没有。 这是可行的:Python 这不起作用:转到 我的浏览器和Python给出了相同的结果,但Go版本却没有。我该如何解决? 编辑 我认为Go可以重定向。使用Python不会发生这种情况。 编辑2 我的问题写得不好。我有两个问题:1)编码2)返回错误的页面。不知道有没有关系。
问题内容: 我知道您可以通过以下几种方式创建多行字符串: 三引号 级联 转义 我也知道,在字符串前面加上前缀将使它成为原始字符串,对于文件路径很有用。 但是,我有一个长文件路径,该文件路径既跨越多行,又需要是原始字符串。我该怎么做呢? 这有效: 但是由于某些原因,这不是: 为什么只有一个反斜杠? 问题答案: 您需要在每个字符串文字上加一个前缀 否则,第一部分将被解释为原始字符串文字,但字符串的下一
问题内容: 好的,所以我一直在尝试使用以下代码加载BufferedImage: 但是,这在运行时给了我一个类型转换错误,那么如何正确加载BufferedImage? 问题答案: 使用来代替:
问题内容: 可以说我有一个字符串列表, 我想做一个正则表达式,在其中的一点上,我可以匹配列表中的任何字符串,例如一个组: 正确的方法是什么?还是必须制作多个正则表达式并将它们分别与字符串匹配? 问题答案: 您不能使用它,因为它会从开始就匹配。请改为使用。 输出: 使用您只会得到第一场比赛。因此请改用。 如果重叠的匹配不是从同一点开始,也可以使用。