目标,豆瓣读书,

下载页面书籍图片。

import urllib.request
import re #使用正则表达式 def getJpg(date):
jpgList = re.findall(r'(img src="http.+?.jpg")([\s\S]*?)(.+?.alt=".+?.")',date)
return jpgList def downLoad(jpgUrl,sTitle,n):
try:
urllib.request.urlretrieve(jpgUrl,\
'C:\\Users\\74172\\source\\repos\\Python\\spidertest1\\images\\book.douban\\%s.jpg' %sTitle)
except Exception as e:
print(e)
finally:
print('图片%s下载操作完成' % n) def getTitle(date):
titleList = re.findall(r'title=".">',date)
return titleList if __name__ == '__main__':
url = 'https://book.douban.com/'
res = urllib.request.urlopen(url)
date = res.read().decode('utf-8')
date_jpg = getJpg(date)
imageTitle = getTitle(date)
global n
n = 1
for jpginfo in date_jpg:
s = re.findall(r'http.+?.jpg',str(jpginfo))
print(n,'--- url -->',str(s)[2:-2])
sTitleInfo = re.findall(r'alt=".+?."',str(jpginfo))
sTitleL = re.findall(r'".+?."',str(sTitleInfo))
sTitle = str(sTitleL)[3:-3]
downLoad(s[0],sTitle,n)
n = n + 1

又做了点修改,并将书名写入txt文件中

import urllib.request
import re #使用正则表达式 def getJpg(html):
jpgList = re.findall(r'(img src="http.+?.jpg")([\s\S]*?)(.+?.alt=".+?.")',html)
jpgList = re.findall(r'http.+?.jpg',str(jpgList))
return jpgList def downLoad(jpgUrl,sTitle,n):
try:
urllib.request.urlretrieve(jpgUrl,\
'C:/Users/74172/source/repos/Python/spidertest1/images/book.douban/%s.jpg' %sTitle)
finally:
print('图片---%s----下载操作完成' % sTitle) def getTitle(html):
titleList = re.findall(r'(img src="http.+?.jpg")([\s\S]*?)(.+?.alt=".+?.")',html)
titleList = re.findall(r'alt=".+?."',str(titleList))
titleList = re.findall(r'".+?."',str(titleList))
return titleList def writeTxt(imageTitle):
try:
#目录建立txt文件
f = open((url[8:-5]+'.txt'),"a",encoding="utf-8")
#写入
f.write(imageTitle+'\n')
finally:
if f:
#关闭文件
f.close() if __name__ == '__main__':
url = 'https://book.douban.com/'
res = urllib.request.urlopen(url)
html = res.read().decode('utf-8')
urlJpgs = getJpg(html)
imageTitle = getTitle(html)
n = 0
for urlJpg in urlJpgs:
print(n,'--- url -->',urlJpg)
downLoad(urlJpg,imageTitle[n][1:-1],n)
writeTxt(imageTitle[n][1:-1])
n = n + 1

python3爬虫.3.下载网页图片的更多相关文章

  1. Python3简单爬虫抓取网页图片

    现在网上有很多python2写的爬虫抓取网页图片的实例,但不适用新手(新手都使用python3环境,不兼容python2), 所以我用Python3的语法写了一个简单抓取网页图片的实例,希望能够帮助到 ...

  2. node:爬虫爬取网页图片

    代码地址如下:http://www.demodashi.com/demo/13845.html 前言 周末自己在家闲着没事,刷着微信,玩着手机,发现自己的微信头像该换了,就去网上找了一下头像,看着图片 ...

  3. [记录][python]python爬虫,下载某图片网站的所有图集

    随笔仅用于学习交流,转载时请注明出处,http://www.cnblogs.com/CaDevil/p/5958770.html 该随笔是记录我的第一个python程序,一个爬去指定图片站点的所有图集 ...

  4. python3爬虫.4.下载煎蛋网妹子图

    开始我学习爬虫的目标 ----> 煎蛋网 通过设置User-Agent获取网页,发现本该是图片链接的地方被一个js函数代替了 于是全局搜索到该函数 function jandan_load_im ...

  5. python3爬虫爬取网页思路及常见问题(原创)

    学习爬虫有一段时间了,对遇到的一些问题进行一下总结. 爬虫流程可大致分为:请求网页(request),获取响应(response),解析(parse),保存(save). 下面分别说下这几个过程中可以 ...

  6. Python多线程爬虫爬取网页图片

    临近期末考试,但是根本不想复习!啊啊啊啊啊啊啊!!!! 于是做了一个爬虫,网址为 https://yande.re,网页图片为动漫美图(图片带点颜色........宅男福利 github项目地址为:h ...

  7. 小白学Python(7)——利用Requests下载网页图片、视频

    安装 Requests 如果安装了Requests就已经可用了,否则要安装 Requests,只要在你的CMD中运行这个简单命令即可: pip install requests requests使用 ...

  8. python图片爬虫 - 批量下载unsplash图片

    前言 unslpash绝对是找图的绝佳场所, 但是进网站等待图片加载真的令人捉急, 仿佛是一场拼RP的战争 然后就开始思考用爬虫帮我批量下载, 等下载完再挑选, 操作了一下不算很麻烦, 顺便也给大家提 ...

  9. python脚本工具-1 制作爬虫下载网页图片

    参考:http://www.cnblogs.com/fnng/p/3576154.html 本文参考虫师的博客“python实现简单爬虫功能”,整理分析后抓取其他站点的图片并下载保存在本地. 抓取图片 ...

随机推荐

  1. 爬虫学习之-urlparse之urljoin()

    首先导入模块,用help查看相关文档 >>> from urlparse import urljoin >>> help(urljoin) Help on func ...

  2. ajax跨域问题(三种解决方案)

    为什么会出现跨域 跨域问题来源于JavaScript的同源策略,即只有 协议+主机名+端口号 (如存在)相同,则允许相互访问.也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其 ...

  3. ZooKeeper系列文章

    ZooKeeper FAQ ZooKeeper客户端事件串行化处理 ZooKeeper分布式锁避免羊群效应(Herd Effect) ZooKeeper管理员指南——部署与管理ZooKeeper Zo ...

  4. 第129天:node.js安装方法

    node.js安装方法 第一步:双击node.js安装包开始安装,注意64位和32位,按照自己的进行安装 第二步:在安装过程中一直选择next,在选择安装目录时,大多数默认安装在C盘,我安装在了D盘, ...

  5. 第93天:CSS3 中边框详解

    CSS3 边框详解 其中边框圆角.边框阴影属性,应用十分广泛,兼容性也相对较好,具有符合渐进增强原则的特征,我们需要重点掌握. 一.边框圆角  border-radius    每个角可以设置两个值 ...

  6. h5端提示下载app

    // app下载提示 if (!sessionStorage.getItem("appDownloadTipClosed") && isAndroidOrIphon ...

  7. 【Quartz.NET】Quartz.NET 入门

    概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔(或天)来调度作业.它实现了 ...

  8. HDU4647_Another Graph Game

    有趣的博弈题. 关键在于把比边权的平分到两边的点权上面,然后点权排序,每次从大的开始拿就可以了. #include <iostream> #include <cstdio> # ...

  9. wp开发(一)--应用发布篇

    本文非常简单,适合刚刚刚刚入门的菜鸟,且针对的是wp8版本.wp8应用的发布总体来说没什么难度,只是有几个值得注意的地方,希望本文可以减少菜鸟们不必要的担心. 首先假设项目已经完成,且要发布到应用商城 ...

  10. 第一个python程序(2)

    输入和输出 输出 用print加上字符串,就可以向屏幕上输出指定的文字.比如输出'hello, world',用代码实现如下: >>> print 'hello, world' pr ...