python - 在 Python 中从 HTML 中提取链接

标签 python html python-3.x html-parsing

我基本上必须制作一个程序,它接受用户输入的网址并解析 html 以查找链接。然后将所有链接以某种格式存储在另一个 HTML 文件中。我只能访问内置 python 模块 (python 3) 。我能够使用 urllib.request 从链接获取 HTML 代码并将其放入字符串中。我实际上如何从该字符串中提取链接并将它们放入字符串数组中?还可以识别链接(例如图像链接/mp3链接),以便我可以将它们放入不同的数组中(然后我可以在创建输出文件时对它们进行分类)

最佳答案

您可以使用re解析 HTML 文本以获取链接的模块。特别是 findall 方法可以返回每个匹配项。

至于按文件类型排序,取决于 URL 是否实际包含扩展名(即 .mp3、.js、.jpeg 等)

你可以像这样做一个简单的 for 循环:

import re
html = getHTMLText()
mp3s = []
other = []
for match in re.findall('<reexpression>',html):
    if match.endswith('.mp3'):
        mp3s.append(match)
    else:
        other.append(match)

关于python - 在 Python 中从 HTML 中提取链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18455991/

相关文章:

python - 当我将其分配给列表的第一个索引时,为什么我的值会发生变化?

python - 在 [Errno 32] Broken pipe 的情况下,Python 3.2 抛出什么样的异常

python - 无法在 Python 的多处理中将两个列表组合成一个映射

python - 如何在python中的自变量中循环和存储值

html - 使用 CSS 将微调器放在图像容器的中心

javascript - 如何使用 Angular-js 验证图像文件

html - 中心 body 和多个图像?

jquery - 在Django中实现一个 "like this"按钮而不刷新页面

python - 在遍历列表时在数据框的一行中添加多个值

python - 为什么我的正则表达式失败?