跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Python 文本采集替换图片的问题
未分類
23 3 月 2020

Python 文本采集替换图片的问题

Python 文本采集替换图片的问题

資深大佬 : qianyealone 10

文章采集下来了带图片的内容,想把图片地址换成本地,图片也下了,但是怎么批量把远程图片地址换成本地的呢

把<img alt=”” src=”http://img.baidu.com/2020/05/20200503105830041.jpg”/>换成
<img alt=”” src=”20200503105830041.jpg”/>

新人跪求大佬带带

大佬有話說 (13)

  • 資深大佬 : ClericPy

    本地开个 static/images 文件夹下载图片, 然后路径用相对路径, 记得别用 windows 的反斜杠, 用 as_posix 的

    大致用的就是:

    requests 的 Response.content 写入 file
    pathlib 的 as_posix

    没什么其他信息, 就这样吧

    PS: 图片名字如果不重要的话, 最简单的就是图片地址转 md5 名字, 避免文件名重复, 也不用处理不同路径同名文件

  • 資深大佬 : jdhao

    直接正则表达式都能替换了

  • 主 資深大佬 : qianyealone

    @jdhao 把这个 http://img.baidu.com/2020/05/替换为空就好,正则怎么写大佬,我太菜了只会提取这个整体 url

  • 資深大佬 : ClericPy

    pathlib.Path(‘http://img.baidu.com/2020/05/20200503105830041.jpg’).name

  • 資深大佬 : jdhao

    @qianyealone 查一下 python 的正则表达式,只能帮到这。。

  • 資深大佬 : ClericPy

    我热晕了, 两次答非所问…

    html = ‘<img alt=”” src=”http://img.baidu.com/2020/05/20200503105830041.jpg”/>’
    print(re.sub(‘(?<=src=”) http[^”]*/’, ”, html))
    # <img alt=”” src=”20200503105830041.jpg”/>

  • 主 資深大佬 : qianyealone

    @ClericPy 谢谢了,大佬

  • 資深大佬 : annielong

    习惯上还是 url 的目录来存文件,只用把域名替换就行了,实际上好多图片都是用的相对路径,域名都不需要替换,只用按目录保存图片就可以直接用

  • 資深大佬 : llsquaer

    @ClericPy 直接复制你的代码 测试的..没变化啊 我用的 python3.6

  • 資深大佬 : ClericPy

    @llsquaer #9
    我代码贴上来以后不知道 http 前面为什么多了空格, 反正在本站贴代码基本就是脑补
    https://paste.ubuntu.com/p/M4Q3QwnZRs/

  • 資深大佬 : lau52y

    我一般用 bs4 获取所有 img 然后就给 replace 替换了

  • 資深大佬 : llsquaer

    @ClericPy 谢谢…我还在研究正则.一直用不好,之前做这种图片本地化是 自己手写的一个函数替换的.你这样更简单了.

  • 資深大佬 : ClericPy

    @llsquaer #12 用正则替换虽然性能高, 但是准确度容错率一般, 比如这里的双引号遇到单引号又得适配, 遇到不是 http 开头的 src 又得适配, 遇到莫名其妙有个换行的, 遇到 src 实际是 data-src 的, 最稳妥的还是 bs4 之类的 DOM 解析然后替换

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具