我知道诸如html2text,BeautifulSoup等之类的实用程序,但问题是它们还提取了javascript并将其添加到文本中,很难将它们分开。
htmlDom = BeautifulSoup(webPage)
htmlDom.findAll(text=True)
交替,
from stripogram import html2text
extract = html2text(webPage)
这两个方法也会提取页面上的所有javascript,这是不希望的。
我只是想提取可从浏览器复制的可读文本。
如果您要避免script
使用BeautifulSoup提取标签的任何内容,
nonscripttags = htmlDom.findAll(lambda t: t.name != 'script', recursive=False)
会为您做到这一点,获取非脚本标记的根的直系子代(单独htmlDom.findAll(recursive=False, text=True)
获取根的直系子代的字符串)。您需要递归执行此操作;例如,作为发电机:
def nonScript(tag):
return tag.name != 'script'
def getStrings(root):
for s in root.childGenerator():
if hasattr(s, 'name'): # then it's a tag
if s.name == 'script': # skip it!
continue
for x in getStrings(s): yield x
else: # it's a string!
yield s
我正在使用childGenerator
(代替findAll
),以便可以按顺序排列所有子项并进行自己的过滤。
问题内容: 我想使用Python从HTML文件中提取文本。如果要从浏览器复制文本并将其粘贴到记事本中,我希望得到的输出基本上相同。 我想要比使用正则表达式更强大的功能,而正则表达式可能在格式不正确的HTML上失败。我见过很多人推荐美丽汤,但是使用它时遇到了一些问题。例如,它拾取了不需要的文本,例如JavaScript源。此外,它没有解释HTML实体。例如,我希望' 在HTML源代码中转换为
问题内容: 我的Python代码处理了以下文本: 您能建议我如何从内部提取数据吗?我的想法是将其放入具有以下格式的CSV文件中:。 我希望没有正则表达式会很困难,但实际上我仍然在反对正则表达式。 我或多或少地通过以下方式使用了代码: 理想情况下是将每个td竞争以某个数组进行竞争。上面的HTML是python的结果。 问题答案: 获取BeautifulSoup并使用它。这很棒。
问题内容: 我有这个示例xml文件 我喜欢提取标题标签和内容标签的内容。 使用模式匹配或使用xml模块,哪种方法最适合提取数据。还是有更好的方法来提取数据。 问题答案: 特别是已经有一个内置的XML库。例如:
问题内容: 我正在开发一个程序,该程序可以下载HTML页面,然后选择一些信息并将其写入另一个文件。 我想提取段落标签之间的信息,但是我只能获得段落的一行。我的代码如下: 我试图添加另一个while循环,这样可以告诉程序继续写入文件,直到该行包含该标记为止; 问题答案: so 我真正喜欢使用的另一个html解析器是jsoup。您可以 在2行代码中获得所有元素。 然后再将其写到文件中 或者,如果您希望
我正在尝试制作一个python脚本,用我所拥有的有限知识从一个网页中刮取特定的信息。但我想我有限的知识是不够的。我需要提取7-8条信息。标签如下- 1 我已使用此代码开始
问题内容: 我正在将我的某些网络抓取代码从R转换为Python(我无法让geckodriver与R一起使用,但它与Python一起使用)。无论如何,我试图了解如何使用Python解析和读取HTML表。快速背景,这是我的R代码: 我将HTML页面解析为doc对象。然后,我将以开始,并通过更大的数字,直到看到所需的数据。在这种情况下,我去看了想要的数据。然后,我将读取该HTML表并将其分配给WebEl
问题内容: 我正在尝试学习一些漂亮的汤,并从一些iFrame中获取一些html数据-但到目前为止,我还没有取得很大的成功。 因此,解析iFrame本身似乎不是BS4的问题,但是我似乎并没有从中获得嵌入的内容-不管我做什么。 例如,考虑下面的iFrame(这是我在chrome开发人员工具上看到的): 我要提取的内容在哪里。 但是,当我使用以下BS4代码时: 我得到: 换句话说,我得到的iFrame中
问题内容: 我正在寻找有关如何使用带有Python的PDFMiner从PDF文件提取文本的文档 或 示例。 看来PDFMiner更新了他们的API,我发现的所有相关示例都包含过时的代码(类和方法已更改)。我发现的那些使从PDF文件提取文本的任务更加容易的库正在使用旧的PDFMiner语法,因此我不确定如何执行此操作。 照原样,我只是在查看源代码,以查看是否可以解决。 问题答案: 这是一个使用当前版