专栏首页Python爬虫与数据分析爬取网站文章将图片保存到本地并将HTML的src属性更改到本地

爬取网站文章将图片保存到本地并将HTML的src属性更改到本地

每次当你爬取一篇文章时,不管是从csdn或者其他网站,基本内容都是保存在一个富文本编辑器中,将内容提取出来还是一个html,保存之后图片还在别人的图片服务器上。我今天要说的就是将图片保存之后并将它的src属性替换成本地的地址。并且以次替换,按照原文章排版顺序替换。

话不多说,直接上代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/11/5 15:06
# @Author  : jia.zhao
# @Desc    : 
# @File    : img_test.py
# @Software: PyCharm

import urllib.request
import re


def getHtml(url):
    # 通过urllib去请求
    page = urllib.request.urlopen(url)
    # 读取页面内容
    html = page.read()
    return html


def getImg(html):

    reg = r'src="(.+?\.jpg)" pic_ext'
    imgre = re.compile(reg)
    # Python3需要加的
    html = html.decode('utf-8')
    # 找到所有匹配项
    imglist = re.findall(imgre, html)

    x = 0
    # 循环
    for i in range(len(imglist)):
        # 保存图片
        # urllib.request.urlretrieve(imgurl, 'img/%s.jpg' % x)
        # 根据每个图片的src的内容进行替换
        html = re.sub(imglist[i], "G:/pachong/img/%s.jpg" % str(i), html)
        x += 1
    print(html)


html = getHtml("http://tieba.baidu.com/p/2460150866")

print(getImg(html))

这个demo知识贴吧的一个帖子里的图片,大家可以依据自己的需求去更改此代码。基本都有注释,不懂的直接留言。看到这,点个赞呗!

本文分享自微信公众号 - Python爬虫scrapy(python_scrapy),作者:Andrew

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 爬虫爬取英文文档存为PDF,在读取PDF自动翻译文档

    这几天在爬了Python的官方文档,但是它里面全是英文,只有数字,没有汉字,原谅我这个英语渣渣搞不懂,只能靠翻译了,如果是复制到百度翻译的话太慢...

    andrew_a
  • Python爬虫视频以及使用python3爬取的实例

    链接: https://pan.baidu.com/s/18iRD2I9t4xHxiSqoe-hFHg 密码: afaf

    andrew_a
  • Python3.6的新特性f-string和新字典

    应该大多数的写Python的都知道这个特性,所以这篇文章是给不知道的同学写的,知道的就跳过吧。

    andrew_a
  • react native使用WebView加载本地html部署方案

    十里桃花舞丶
  • 为了不复制粘贴,我被逼着学会了JAVA爬虫

    受疫情影响一直在家远程办公,公司业务进展的缓慢,老实讲活并没有那么多,每天吃饭、睡觉、逛技术社区、写博客,摸鱼摸得爽的很。早上本来还想在来个回笼觉,突然部门经理...

    程序员内点事
  • 为了不复制粘贴,我被逼着学会了JAVA爬虫

    受疫情影响一直在家远程办公,公司业务进展的缓慢,老实讲活并没有那么多,每天吃饭、睡觉、逛技术社区、写博客,摸鱼摸得爽的很。早上本来还想在来个回笼觉,突然部门经理...

    程序员内点事
  • nginx配置url重写

    url重写是指通过配置conf文件,以让网站的url中达到某种状态时则定向/跳转到某个规则,比如常见的伪静态、301重定向、浏览器定向等

    landv
  • Ajax请求SpringMVC Json数据报错Http 400(一)

        最近在完善博客的过程中,发现了一些细节问题。后台使用的是SpringMvc,前台使用的是jquery请求。之前后台采用的是

    幽鸿
  • Python爬虫入门教程 19-100 51CTO学院IT技术课程抓取

    从今天开始的几篇文章,我将就国内目前比较主流的一些在线学习平台数据进行抓取,如果时间充足的情况下,会对他们进行一些简单的分析,好了,平台大概有51CTO学院,C...

    梦想橡皮擦
  • html概述和基本结构 - html的helloworld

    HTML是 HyperText Mark-up Language 的首字母简写,意思是超文本标记语言,超文本指的是超链接,标记指的是标签,是一种用来制作网页的语...

    Devops海洋的渔夫

扫码关注云+社区

领取腾讯云代金券