Python2.0抓取豆瓣图片

import urllib.request  
from html.parser import HTMLParser  
import re  
import os  
import shutil  
import time  
url = "http://www.douban.com/"  
filePath = "D:\\temp"  
# 读也HTML  
urlContent = urllib.request.urlopen(url);  
data = str(urlContent.read())  
# 初始化文件目录  
if  os.path.isdir(filePath):  
#     os.removedirs(filePath)  
    shutil.rmtree(filePath)  
elif os.path.isfile(filePath):  
    os.remove(filePath)  
os.makedirs(filePath)  
# 生成唯一文件名  
intFlag = 0  
def getTimeStr():  
    global intFlag  
    intFlag = intFlag + 1  
    return time.strftime("%H%M%S") + str(intFlag)  
# 解析HTML  
# HTMLParser方式解析,这里HTMLParser类似于抽象类  
class MyHtmlParser(HTMLParser):  
    def handle_starttag(self, tag, attrs):  
        '获取 img标签'  
        if tag == "img" :  
            for imageUrl in attrs:  
                '获取src属性'  
                if imageUrl[0] == 'src':  
                    imageUrl = imageUrl[1]  
                    imageUrl = re.sub("[\\\\']", "", imageUrl)  
                    iamgeUrlArr = imageUrl.split("/")  
                    imgFilePath = iamgeUrlArr[len(iamgeUrlArr) - 1]  
                    try:  
                        imgData = urllib.request.urlopen(imageUrl).read()  
                        imgFilePath = filePath + os.sep + imgFilePath + getTimeStr() + ".jpg"  
                        imageFile = open(imgFilePath, "wb")  
                        imageFile.write(imgData)  
                        imageFile.close()  
                        print("下载文件", imageUrl, "成功,另存路径:" + imgFilePath)  
                    except  :  
                        print("****下载文件 ", imageUrl, " 出错:")  
parser = MyHtmlParser()  
# 解析HTML  
parser.feed(data)  
print("获取图片操作完成")  

原文发布于微信公众号 - 编程坑太多(idig88)

原文发表时间:2018-03-09

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java学习123

powerdesigner 15 如何导出sql schema

3347
来自专栏Aloys的开发之路

数据库相关总结

通用: http://db-engines.com/en/ranking MySQL MySQL: http://www.mysql.com/ MySQL参考:...

1908
来自专栏乐沙弥的世界

只读表空间的备份与恢复

--====================== --  只读表空间的备份与恢复 --====================== 一、只读表空间的特性...

922
来自专栏Java学习123

powerdesigner 15 如何导出sql schema

2975
来自专栏更流畅、简洁的软件开发方式

很简单的企业管理器---我写程序的方式,几个自定义控件。

这里呢我利用我常用的东东写个实例,抛砖引玉,大家也都来批批,帮助我提高嘛。 我常用的呢是 数据访问层(简单理解是SQLHelp,但是绝不等于)、分页控件等自定...

2158
来自专栏运维

使用ELK分析腾讯云CLB日志

最近在使用腾讯云,想对访问日志进行收集与分析,发现CLB(负责均衡)日志只能保存到COS上面,而且是每个CLB没小时压发送个gz压缩包到COS。

1534
来自专栏三杯水

使用ELK分析腾讯云CLB日志

最近在使用腾讯云,想对访问日志进行收集与分析,发现CLB(负责均衡)日志只能保存到COS上面,而且是每个CLB没小时压发送个gz压缩包到COS。

2273
来自专栏c#开发者

DataGrid和CheckBox的混合使用

我们知道DataGrid是非常强大的一个ASP.NET组件,我们可以用它表示非常丰富的信息.在论坛里经常可以看见一些网友问一些关于该控件的问题,我虽不是什么高手...

3659
来自专栏Albert陈凯

2018-11-22 Neo4j - 无法删除节点 - 报错OutOfMemoryError:

NEO4J 批量删除关系 Neo4j batch delete relationship

1672
来自专栏LIN_ZONE

MySQL视图更新

昨天在写美团2019秋招笔试题的时候遇到了关于视图是否能更新的问题,突然感觉这个问题之前复习的时候重点关注过,但是却又想不全。今天特地搜了一些资料总结一下。本文...

1853

扫码关注云+社区

领取腾讯云代金券