在平常上网阅读网页的时刻,经常会看到一些好看的图片,就盼望把这些图片保留下载,或许用户用来做桌面壁纸,或许用来做计划的素材。

最惯例的做法便是经由过程鼠标右键,抉择另存为。但有些图片鼠标右键的时刻并无另存为选项,另有方法就经由过程便是经由过程截图对象截取上去,但如此就降低图片的清晰度。

能够通过python 来完成这样一个简略的爬虫功效,把想要的图片爬取到当地。上面就看看如何应用python来完成这样的功效。

一,获得全部页面数据

起首能够先获得要下载图片的全部页面信息。写一个py

#coding=utf-8

import urllib

def getHtml(url):

page = urllib.urlopen(url)

html = page.read()

return html

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

print html

Urllib 模块提供了读取web页面数据的接口,我们可以像读取本地文件一样读取www和ftp上的数据。首先,我们定义了一个getHtml()函数:

urllib.urlopen()方法用于打开一个URL地址。

read()方法用于读取URL上的数据,向getHtml()函数传递一个网址,并把整个页面下载下来。执行程序就会把整个网页打印输出。

二,筛选页面中想要的数据

Python 提供了非常强大的正则表达式,需要先要了解一点python 正则表达式的知识才行。查看页面源代码。

python爬虫

假如在百度贴吧找到了几张漂亮的壁纸,通过到前段查看工具。找到了图片的地址,如:src=”http://imgsrc.baidu.com/forum……jpg”pic_ext=”jpeg”

修改代码如下:

import re

import urllib

def getHtml(url):

page = urllib.urlopen(url)

html = page.read()

return html

def getImg(html):

reg = r'src="(.+?\.jpg)" pic_ext'

imgre = re.compile(reg)

imglist = re.findall(imgre,html)

return imglist

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

print getImg(html)

创建了getImg()函数,用于在获取的整个页面中筛选需要的图片连接。re模块主要包含了正则表达式:

re.compile() 可以把正则表达式编译成一个正则表达式对象.

re.findall() 方法读取html 中包含 imgre(正则表达式)的数据。

运行脚本将得到整个页面中包含图片的URL地址。

三,将页面筛选的数据保存到本地

把筛选的图片地址通过for循环遍历并保存到本地,代码如下:

#coding=utf-8

import urllib

import re

def getHtml(url):

page = urllib.urlopen(url)

html = page.read()

return html

def getImg(html):

reg = r'src="(.+?\.jpg)" pic_ext'

imgre = re.compile(reg)

imglist = re.findall(imgre,html)

x = 0

for imgurl in imglist:

urllib.urlretrieve(imgurl,'%s.jpg' % x)

x+=1

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

print getImg(html)

这里的核心是用到了urllib.urlretrieve()方法,直接将远程数据下载到本地。

通过一个for循环对获取的图片连接进行遍历,为了使图片的文件名看上去更规范,对其进行重命名,命名规则通过x变量加1。保存的位置默认为程序的存放目录。

程序运行完成,将在目录下看到下载到本地的文件。

python爬虫贴吧_Python爬虫简单实现,贴吧图片一键下相关推荐

  1. python简单爬虫入门一_Python爬虫快速入门:基本结构简单实例

    本爬虫系列入门教程假设读者仅有一点点Python基础或者近乎为零的基础.如果是有Python基础的可以跳过一些对于Python基本知识的补充. 爬虫能干什么呢?一句话概括,正常通过浏览器可以获取的数据 ...

  2. python 爬虫哪个好_Python爬虫框架哪个最好用最简单

    想使用python爬虫框架开发个爬虫,但目前了解有限,希望大家帮忙推荐几个,谢谢啦~ 另外,大家平常工作中都使用python干些什么事情呢?网站开发?爬虫?还是运维? scrapy 爬虫框架.纯pyt ...

  3. python爬虫开发环境_python爬虫开发教程下载|Python爬虫开发与项目实战(范传辉 著)pdf 完整版_ - 极光下载站...

    Python爬虫开发与项目实战pdf扫描版下载.Python爬虫开发是一个Pthyon编程语言与HTML基础知识引领读者入门知识,重点讲述了云计算的相关内容及其在爬虫中的应用,进而介绍如何设计自己的爬 ...

  4. python爬虫自学路线_python 爬虫学习路线:从入门到进阶

    大家好,我是凉拌 今天给大家详解一下我的爬虫学习路线. 对于小白来说,爬虫可能是一件非常复杂.技术门槛很高的事情.比如有的人则认为先要掌握网页的知识,遂开始 HTML\CSS,结果入了前端的坑,浪费了 ...

  5. python爬虫面试问题_Python爬虫面试总结

    ## Python爬虫面试总结 1. 写一个邮箱地址的正则表达式? [A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$ 2. 谈 ...

  6. python 正则表达式提取数据_Python爬虫教程-19-数据提取-正则表达式(re)

    本篇主页内容:match的基本使用,search的基本使用,findall,finditer的基本使用,匹配中文,贪婪与非贪婪模式 Python爬虫教程-19-数据提取-正则表达式(re) 正则表达式 ...

  7. python爬取网页内容_Python爬虫原理解析

    笔者公众号:技术杂学铺 笔者网站:mwhitelab.com 本文将从何为爬虫.网页结构.python代码实现等方面逐步解析网络爬虫. 1. 何为爬虫 如今互联网上存储着大量的信息. 作为普通网民,我 ...

  8. python爬虫requests库_python爬虫使用Requests库 - pytorch中文网

    在入门教程中我们介绍了urllib库和urllib2的用法,同时我们了解一些爬虫的基础以及对爬虫有了基本的了解.其实在我们生产环境中,使用Request库更加方便与实用,同时我们这需要短短的几行代码就 ...

  9. python爬虫防屏蔽_python爬虫程序如何预防被限制

    有一些网站不喜欢被爬虫程序访问,所以会检测连接对象,如果是爬虫程序,也就是非人点击访问,它就会不让你继续访问,所以为了要让程序可以正常运行,需要隐藏自己的爬虫程序的身份.此时,我们就可以通过设置Use ...

  10. python制作英语字典_Python爬虫之自制英汉字典

    最近在微信公众号中看到有人用Python做了一个爬虫,可以将输入的英语单词翻译成中文,或者把中文词语翻译成英语单词.笔者看到了,觉得还蛮有意思的,因此,决定自己也写一个玩玩~~ 首先我们的爬虫要能将英 ...

最新文章

  1. Tomcat如何支持带中文的url?
  2. 柱坐标系下的ns方程_笛卡尔坐标系到底是什么?
  3. 算法经典书籍--算法设计与分析基础
  4. 【学无止境】关于通过PHP链接FTP或SFTP的问题及解决--FTP篇
  5. 软件工程模块开发卷宗_软件智能化再进一步,未来人人都能开发软件?
  6. 一次动态代理的填坑之旅
  7. Android studio的Activity详解
  8. 作业三-读书app原型设计
  9. Windows电脑垃圾的清理
  10. 读PPK谈javascript
  11. 洛谷P2744 [USACO5.3]量取牛奶Milk Measuring
  12. 1162: 6003 星期几?
  13. vuex 是什么? 以及它的基本使用
  14. 在debian7.8安装wcp知识库
  15. 图像相似度匹配——距离大全
  16. Google Chrome for Mac 谷歌浏览器
  17. 数据结构---判断链表是否有环
  18. electron项目构建打包缺少dll文件的问题解决办法
  19. Bandit算法学习[网站优化]04——UCB(Upper Confidence Bound) 算法
  20. au3 连接mysql_AutoIt3开发的操作SQlite数据库的源码

热门文章

  1. 如何学STM32 —— 十年经验教你如何学习嵌入式系统
  2. datax 导入数据中文乱码_浅谈数据同步之道
  3. java 界面位置_java界面中怎样设置位置
  4. mysql索引底层图_MySQL索引底层数据结构
  5. 计算机工具软件未来的发展,2017年我国PC及工具软件的发展概况
  6. python认识if语句_python初认识、基础数据类型以及 if 流程控制
  7. 微信读书vscode插件_vscode 常用的插件
  8. python数据库操作框架_python bottle 框架操作数据库
  9. arcgis引用样式无符号_【技术积累】arcgis制图应用:符号制作
  10. Java写入磁盘阵列_月光软件站 - 编程文档 - Java - 利用Linux创建磁盘阵列