regex - 在 curl/grep 组合中无法识别正则表达式
问题描述
我尝试使用以下 curl/grep/seed 组合从 html url 列表中获取图像 url(wget
我失败了 403,但cUrl
正确获取源代码):
curl -K "C:\urls.txt" | "C:\GnuWin32\bin\grep.exe" -o '(http[^\s]+(jpg|png|webp)\b)' | sed 's/\?.*//' > imglinks.txt
但我得到一个错误The command "png" is either misspelled or could not be found.
正则表达式应该是正确的:https ://regex101.com/r/Qk6A0Z/1/
如何改进此代码?
编辑:我的列表中单个 url 的源代码可以看到正在运行curl https://watchbase.com/sellita
片段,我想从中获取图片网址看起来像
<picture>
<source type="image/webp" data-srcset="https://cdn.watchbase.com/caliber/md/origin:png/sellita/sw200-1-bd.webp" srcset="https://assets.watchbase.com/img/FFFFFF-0.png" />
<img class="lazyload" data-src="https://cdn.watchbase.com/caliber/md/sellita/sw200-1-bd.png" src="https://assets.watchbase.com/img/FFFFFF-0.png" alt="Sellita caliber SW200-1"/>
</picture>
预期的输出是一个包含所有图像 url 的文件,即使是来自data-src
和data-srcset
.
解决方案
你可以试试这个xargs+curl+grep
管道:
xargs -n 1 curl < "C:\urls.txt" | "C:\GnuWin32\bin\grep.exe" -Eo "http[^[:blank:]?'\"]+(jpe?g|png|gif|bmp|ico|tiff|webp)\b" > imglinks.txt
推荐阅读
- html - 如何将电子邮件链接添加到 HTML 中的图标?
- haskell - 在这种情况下如何使用 mapM_
- c++ - 有人可以用 bool 函数和 if 语句来解释这种行为吗?
- amazon-web-services - 多租户动态多域,SSL 指向单个主机/CDN
- python - 如何解决leetcode中超出时间限制的错误
- java - 如何从java中的链接列表中的节点检索对象的内容
- google-cloud-platform - 使用 XCom 通过 GoogleCloudStorageToBigQueryOperator 在 Airflow 中加载 Schema
- android - Android:如何制作特殊的recyclerview布局
- observable - 当我尝试编译时,我不断收到这个错误类不是抽象的,并且没有覆盖 MyObserver 中的抽象方法 update(Object)
- strftime - 如何编写符合 Flake8 的 strftime 表达式?