lxml.html。读取文件时出错;无法加载外部实体

2023-12-10

我正在尝试使用 lxml.html 解析从 YouTube 获取电影预告片 url:

from lxml import html
import lxml.html
from lxml.etree import XPath

def get_youtube_trailer(selected_movie):
# Create the url for the YouTube query in order to find the movie trailer
title = selected_movie
t = {'search_query' : title + ' movie trailer'}
query_youtube = urllib.urlencode(t)
search_url_youtube = 'https://www.youtube.com/results?' + query_youtube

# Define the XPath for the YouTube movie trailer link
movie_trailer_xpath = XPath('//ol[@class="item-section"]/li[1]/div/div/div[2]/h3/a/@href')

# Parse the YouTube html code
html = lxml.html.parse(search_url_youtube)

# Add the movie trailer to our results
results['movie_trailer'] = 'https://www.youtube.com' + movie_trailer_xpath(html)[0]

我收到以下错误:

File "C:/Users/Aleks/Google Drive/Udacity - Full Stack Web Dev Nanodegree/Lessons/Lesson 3a (Make Classes) - Movie Website/models.py", line 163, in <module>
print get_youtube_trailer("titanic")

File "C:/Users/Aleks/Google Drive/Udacity - Full Stack Web Dev Nanodegree/Lessons/Lesson 3a (Make Classes) - Movie Website/models.py", line 157, in get_youtube_trailer
html = lxml.html.parse(search_url_youtube)
File "C:\Python27\lib\site-packages\lxml\html\__init__.py", line 788, in parse
return etree.parse(filename_or_url, parser, base_url=base_url, **kw)
File "lxml.etree.pyx", line 3301, in lxml.etree.parse (src\lxml\lxml.etree.c:72453)
File "parser.pxi", line 1791, in lxml.etree._parseDocument (src\lxml\lxml.etree.c:105915)
File "parser.pxi", line 1817, in lxml.etree._parseDocumentFromURL (src\lxml\lxml.etree.c:106214)
File "parser.pxi", line 1721, in lxml.etree._parseDocFromFile (src\lxml\lxml.etree.c:105213)
File "parser.pxi", line 1122, in lxml.etree._BaseParser._parseDocFromFile (src\lxml\lxml.etree.c:100163)
File "parser.pxi", line 580, in lxml.etree._ParserContext._handleParseResultDoc (src\lxml\lxml.etree.c:94286)
File "parser.pxi", line 690, in lxml.etree._handleParseResult (src\lxml\lxml.etree.c:95722)
File "parser.pxi", line 618, in lxml.etree._raiseParseError (src\lxml\lxml.etree.c:94754)
IOError: Error reading file 'https://www.youtube.com/results?search_query=titanic+movie+trailer': failed to load external entity "https://www.youtube.com/results?search_query=titanic+movie+trailer"

用完全相同的方法解析来自其他网站的信息,然后它就起作用了。


libxml2 不支持 SSL/TLS。使用 Python 的 urllib2 代替。

如果您尝试使用任何网址http://<blah>.<blah>你不会有麻烦,但这里不支持 https。还存在重定向问题。

Try

from urllib2 import urlopen
import lxml.html
tree = lxml.html.parse(urlopen('https://google.com'))

欲了解更多信息,请参阅this


Solution

嗯,有解决方法。尝试 selenium,如果您不需要 UI,则以无头模式运行 selenium。效果很好我自己尝试过。

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

lxml.html。读取文件时出错;无法加载外部实体 的相关文章

  • 将 python NLTK 解析树保存到图像文件[重复]

    这个问题在这里已经有答案了 这可能会复制这个 stackoverflowquestion https stackoverflow com questions 23429117 saving nltk drawn parse tree to
  • lxml.etree 和 xml.etree.ElementTree 添加没有前缀的命名空间(ns0、ns1 等)

    有没有任何解决方案可以添加不带前缀的命名空间 我的意思是这些 ns0 ns1 它适用于所有 etree 实现 或者每个都有可行的解决方案 目前我有以下解决方案 lxml 元素的 nsmap 参数 c 元素树 python 2 6 以空字符串
  • 为什么这个 SimpleDateFormat 无法解析这个日期字符串?

    简单日期格式 SimpleDateFormat pdf new SimpleDateFormat MM dd yyyy hh mm ss SSSaa 抛出的异常pdf parse Mar 30 2010 5 27 40 140PM java
  • float.Parse 不再在 Unity 中工作 (C#)

    我有一个包含以下代码行的工作项目 public InputField mass float val float Parse mass text 非常简单 用户输入一定量的质量 然后将其从文本解析为浮动 几天前这工作得很好 我什至能够多次导出
  • 如何解析代码(Python)?

    我需要解析一些特殊的数据结构 它们采用某种类似 C 的格式 大致如下所示 Group GroupName C Style comment Group AnotherGroupName Entry some variables 0 3 141
  • 如何将带小数点的字符串解析为双精度型?

    我想解析一个字符串 3 5 到一个双倍 然而 double Parse 3 5 产量 35 和 double Parse 3 5 System Globalization NumberStyles AllowDecimalPoint 抛出一
  • DateTimeFormatter 中的通配符

    我需要将一个字符串解析为LocalDate 该字符串看起来像31 03 2016用正则表达式术语 即 表示日期数字后可能有 0 个或多个未知字符 输入 输出示例 31xy 03 2016 gt 2016 03 31 我希望在 DateTim
  • 将聊天文本中的成对符号替换为 html 标签,以设置粗体、斜体和删除线样式

    我正在尝试制作 Whatsapp 风格的文本帖子 当用户创建这样的文本时 Hi how are you where are you 然后这个文本会像这样自动改变 Hi你好吗你在哪 我知道我可以使用 php 正则表达式来做到这一点 如下所示
  • Mac OS X 10.9 上的 Python3、lxml 和“未找到符号:_lzma_auto_decoder”

    我已经使用 homebrew 安装了 python 3 然后安装了 pip3 和 lxml 下面一行 从 lxml 导入主菜 导致以下错误 python3 Python 3 3 5 v3 3 5 62cf4e77f785 Mar 9 201
  • 在解析之前使用 lxml 注册命名空间

    我正在使用 lxml 从具有命名空间的外部服务解析 XML 但未将它们注册到xmlns 我正在尝试手动注册它register namespace 但这似乎不起作用 from lxml import etree xml
  • 处理调车场额外的操作员

    给定这样的输入 3 4 算法将其转化为3 4 当执行后缀表达式时我可以找到错误 但是 在转换过程中是否有可能发现这一点 我读过的维基百科文章和互联网文章不处理这种情况 谢谢 除了括号不匹配之外 还可以使用正则表达式来验证有效表达式 如维基百
  • Java 中的递归下降解析器

    我想在序言中说这是我三年级编程语言课的家庭作业 我正在寻求一些帮助 我的作业如下 截止日期 2013年2月22日晚上11点55分提交 请将以下内容上传到CMS 1 源代码2 程序执行的屏幕截图 包括您使用的输入文件 使用您喜欢的任何编程语言
  • 从 csv 中读取 pandas 数据帧,以非固定标头开始

    我有许多数据文件是由我的实验室中使用的一些相当黑客的脚本生成的 该脚本非常有趣 因为它在标头之前附加的行数因文件而异 尽管它们具有相同的格式并具有相同的标头 我正在编写一个批处理来将所有这些文件处理为数据帧 如果我不知道位置 如何让 pan
  • java数据结构模拟数据树

    我需要帮助定义使用什么方法 我有一个 SOAP 响应 给我一个 xml 文件 我需要在屏幕上显示 3 个相关列表 当您在第一个列表中选择一个项目时 相应的选择将出现在第二个列表中 依此类推 我只对从 xml 流中提取数据后如何有效地组织数据
  • 使用 R 读取和转换二进制原始数据

    我有一个file https drive google com file d 0BxMpk0nhnJy6SFhxd2xuMzJYYlk edit usp sharing其中包含原始 二进制数据和 ascii 它包含一个时间戳和一个代表速度的
  • Parse::RecDescent 语法未按预期工作

    我所能做的就是 STRING PARAMS VARIABLE 和 FUNCNAME FUNCTION 似乎有问题 但我就是看不到它 use strict use Parse RecDescent RD ERRORS 1 Make sure
  • 在Python中连续解析文件

    我正在编写一个脚本 该脚本使用 HTTP 流量行解析文件 并取出域 目前仅将它们打印到屏幕上 我正在使用 httpry 将流量连续写入文件 这是我用来删除域名的脚本 usr bin python import re input open r
  • 无论如何要抓取重定向的链接吗?

    无论如何 我可以让 python 单击一个链接 例如 bit ly 链接 然后抓取生成的链接吗 当我抓取某个页面时 我唯一可以抓取的链接是重定向的链接 它重定向到的位置就是我需要的信息所在的位置 重定向有 3 种类型 HTTP 作为响应标头
  • 用于(联合国)结构化文本文档的词法分析器/解析器[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有很多脚本解析器和词法分析器 即结构化计算机语言 但我正在寻找一个可以将 几乎 非结构化文本文档分成更
  • 有一种简单的方法可以忽略时间戳来区分日志文件吗?

    我需要比较两个日志文件 但忽略每行的时间戳部分 确切地说是前 12 个字符 有没有一个好的工具 或者一个聪明的 awk 命令 可以帮助我 根据您使用的 shell 您可以改变方法 Blair https stackoverflow com

随机推荐

  • GUI 中的 Tkinter 函数打印

    我做了一个带有 2 个 api 的程序 显示用户选择的不同城市的天气预报和城市信息 但现在我需要帮助 因为我陷入了如何让我的 make request make requests 和 city data 在 GUI 中打印信息的困境 我想我
  • 将 fiddler 会话导出为 .jmx 以用于 JMeter 测试计划

    是否有任何选项 解决方法可以将 fiddler 跟踪文件导出为 jmx 文件以导入到 JMeter 中 看看这个 http www perftesting co uk creating jmeter test plans with fidd
  • 在 Xcode 上找不到框架 FirebaseInstanceID

    我从 Xcode 收到以下错误 尝试了互联网上的许多解决方案 但没有用 ld framework not found FirebaseInstanceID 我尝试过的解决方案 https stackoverflow com a 312982
  • 对 3D 箭袋函数进行颜色映射

    我使用 Matplotlib 在 python 中创建了一个可爱的 3D 位移矢量场 我对结果很满意 然而 从视觉上看 仅从方向上看位移的大小并不是很容易 python中有没有一种方法可以使用箭头的色标 以便位移的大小更清晰 更明显 这就是
  • WPF 线条、路径..等自定义绘图样式

    在 WPF 中 有一种方法可以修改任何路径的绘制方式Dash Dot序列 假设我想为我正在绘制的任何路径或绘图路径本身上的小三角形 波浪等绘制一条三重线 我已经尝试过刷子 但它不会遵循Path 请帮忙 thx WPF s Geometry类
  • ChunkedInput 在球衣中不起作用

    任何人都可以帮助我为什么java代码有问题并一次性打印所有数据而不是将每个块打印为javascript代码 Java代码 import org glassfish jersey client ChunkedInput import java
  • chatDidReceiveMessage 方法未调用 QuickBlox

    我在用QuickBlox iOS SDK用于聊天 登录 注册工作正常 我也可以发送消息 但委托方法 void chatDidReceiveMessage QBChatMessage message 没有接到电话 这是我用来设置聊天的代码 在
  • 如何向 cmdlet 输出添加一列递增值?

    假设我打电话Get Service并想要分配一个新列ID使用打印递增整数的 cmdlet 输出 以便 ID Status Name DisplayName 0 Running AdobeARMservice Adobe Acrobat Up
  • MAMP PEAR 配置指向本地目录

    我正在使用 MAMP 2 0 5 升级 PEAR 时遇到问题 MAMP 如何升级 PEAR 问题是 PEAR 始终安装在 本地 PEAR 目录中 而不是 MAMP PEAR 目录中 我的 MAMP PEAR 配置如下 sudo Applic
  • WordPress MD5 密码

    我需要通过 PHP 脚本或 MySQL 将用户插入到 Wordpress 博客中 并且我有一个纯文本密码 我想我可以做这样的事情 query INSERT INTO new db wp users user login user pass
  • 将word文档解析为excel文件

    我有一个 Word 文档 其中包含我想要解析为 Excel 文件的数据 源文件长达数百页 我一直在使用 VBA 但我刚刚开始学习该语言 并且在尝试输入 doc 文件时遇到了很多困难 我已经能够使用Open和线路输入语句从 txt 文件中检索
  • Python 中动态表单的 Web Scraper

    我正在尝试填写该网站的表格http www marutisuzuki com Maruti Price aspx 它由三个下拉列表组成 一是汽车型号 二是州 三是城市 前两个是静态的 第三个城市是根据州的值动态生成的 有一个 onclick
  • 如果任何字段包含 NULL,MySQL CONCAT 将返回 NULL

    我的表 设备 中有以下数据 affiliate name affiliate location model ip os type os version cs1 inter Dell 10 125 103 25 Linux Fedora cs
  • Google Apps 脚本表单:e.namedValues 不记录任何内容

    我有一个非常基本的 Google Apps 表单 其中包含两个问题 资源 带有两个选项的单选按钮 和名称 文本字段 我想在提交时选择表单值 因此我设置了一个触发器 在表单提交时 来调用函数 function onFormSubmit e L
  • Perl,使脚本在x秒后超时?

    我一直在搜索这个问题 但令人惊讶的是很难得到一个直接的答案 因为 php 似乎有关于这个主题的更多信息 我需要让我的 perl 脚本在指定的秒数后终止 因为 就像现在一样 它们运行时间太长并堵塞了我的系统 我怎样才能使整个脚本在指定的秒数后
  • Java-改变秋千背景颜色?

    好的 我得到了一个使用 系统 外观的 Swing 应用程序 现在 我想将主面板的背景颜色更改为黑色 太容易了吧 UIManager put Panel background Color BLACK 是的 除了现在应用程序中的控件看起来很愚蠢
  • 如何获取 Windows 中所有打开的命名管道的列表?

    有没有一种简单的方法来测试命名管道是否正常工作 我想确保从应用程序发送的数据确实已发送 有没有一种快速简便的方法来获取所有命名管道的列表 在 Windows Powershell 控制台中 键入 System IO Directory Ge
  • 无法保存/传递父级对组合对象的引用

    在 C 中 它会是这样的struct A由 组成struct B和一些功能B获取指向父对象的指针A 所以函数为A调用该函数B将简单地通过this指向它的指针 我正在 Rust 中尝试此操作 但未能使其正常工作 这就是我想要实现的目标 str
  • 从经典 ASP 调用 COM 对象

    如何从经典 ASP 调用 COM 对象 我努力尝试但找不到好的教程 有什么建议吗 我在经典 ASP 中使用 C 要在经典 ASP 中实例化 COM 对象 Dim rs Set rs Server CreateObject ADODB Rec
  • lxml.html。读取文件时出错;无法加载外部实体

    我正在尝试使用 lxml html 解析从 YouTube 获取电影预告片 url from lxml import html import lxml html from lxml etree import XPath def get yo