【问题标题】:Getting the jpg images from an HTML file从 HTML 文件中获取 jpg 图像
【发布时间】:2012-02-22 00:35:13
【问题描述】:

我正在尝试使用 grep 来获取 HTML 文件中 jpg 图像的完整 url 地址。一个问题是其中没有很多换行符,所以当我使用 grep 时,它会获取路径,但还有很多其他我不感兴趣的东西。我怎样才能获取 jpg 图像的 url?

【问题讨论】:

  • 您能否提供一个 HTML 示例和您当前的 grep 命令?

标签: parsing grep html-parsing


【解决方案1】:

一个sed 命令

sed -n '/<img/s/.*src="\([^"]*\)".*/\1/p' yourfile.html

或使用ERE (extended regular expressions) 来避免上述表达式中的backslashes

sed -E -n '/<img/s/.*src="([^"]*)".*/\1/p' yourfile.html

一个基本的grep 命令

grep -o '<img[^>]*src="[^"]*"' yourfile.html

两个连续的基本grep 命令

grep -o '<img[^>]*src="[^"]*"' yourfile.html | grep -o '"[^"]*"'

一个使用 Perl Regex 的 grep 命令 (PER)

grep -Po '<img[^>]*src="\K[^"]*(?=")' yourfile.html

ack 用作类似grep 的替换

sudo apt install ack
ack -o '<img[^>]*src="\K[^"]*(?=")' yourfile.html

下载网页,由s-hunter提出

curl -s example.com/a.html | sed -En '/<img/s/.*src="([^"]*)".*/\1/p'

【讨论】:

  • 哇,令人印象深刻!你花了多长时间想出这一切?你是凭记忆做的,还是必须查资料?
  • 第一个命令就是我需要的。其他人稍稍偏了。不过,我印象深刻。你花了多长时间才精通 sed?我们可以成为 Facebook 朋友吗?
  • 谢谢,正是我需要的! (与grep)。为了完成您的回答,我使用以下组合下载了所有需要在本地自动创建的路径的图像(在我的情况下,它用于 csv 文件中的 html):cat myfile.csv | grep -o 'src=""[^"]*"' | cut -b 5- | xargs wget -p
  • 从 url 获取图像: curl www.a-web-page-url.com/ | sed -n '/
  • 嗨@VictorioBerra。如果您使用 s-hunter 的评论建议的命令行,则添加选项-r。这是正确的命令行:curl www.a-web-page-url.com/ | sed -n -r '/&lt;img/s/.*src="([^"]*)".*/\1/p'。我正在编辑/改进我的答案以明确。玩得开心,新年快乐 ;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-16
  • 2011-09-17
  • 2016-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多