在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。

我们最常规的做法就是通过鼠标右键,选择另存为。但有些图片鼠标右键的时候并没有另存为选项,还有办法就通过就是通过截图工具截取下来,但这样就降低图片的清晰度。好吧~!其实你很厉害的,右键查看页面源代码。

我们可以通过python 来实现这样一个简单的爬虫功能,把我们想要的代码爬取到本地。下面就看看如何使用python来实现这样一个功能。

一,获取整个页面数据

首先我们可以先获取要下载图片的整个页面信息。

getjpg.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 正则表达式的知识才行.

假如我们百度贴吧找到了几张漂亮的壁纸,通过到前段查看工具。找到了图片的地址,如: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使用百度进行爬虫简单学习例子

    root@kali:~/py# python table.py list: ['http://www.baidu.com/s?wd=python&pn=10&oq=python& ...

  2. 【Python】百度首页GIF动画的爬虫

    今天百度首页的GIF动画很可爱,就想着用才学的爬虫爬取一下,虽然直接点击"图片另存为"就可以了 import requestsimport urllibclass Gif():de ...

  3. python爬虫百度图片_python实现爬取百度图片的方法示例

    本文实例讲述了python实现爬取百度图片的方法.分享给大家供大家参考,具体如下: import json import itertools import urllib import requests ...

  4. python爬网站的题库_Python零基础爬虫教程(实战案例爬取电影网站资源链接)

    前言 好像没法添加链接,文中的链接只能复制到浏览器查看了 这篇是我写在csdn的,那里代码格式支持更好,文章链接 https://blog.csdn.net/d497465762/article/de ...

  5. 用我对HTML的点点理解来做个简单的百度首页

    为什么80%的码农都做不了架构师?>>>    在我心里,HTML一直以来都是一个新鲜而神秘的东西,好多次想静下心来研究研究,最终因为各种原因搁置下来.终于,最近终于有时间看看其中的 ...

  6. python如何爬取百度云_python如何爬取百度云连接方法指导

    本篇文章主要介绍了python urllib爬取百度云连接的实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 翻看自己以前写的程序,发现写过一个爬取盘多多百度云资源的东西,完全是当时想看变形 ...

  7. python爬虫文本去重_Python微型异步爬虫框架

    Amipy Python微型异步爬虫框架(A micro asynchronous Python website crawler framework) 基于Python 3.5 + 的异步async- ...

  8. python模拟浏览器打开百度首页并登录或者点击首页新闻并保存网页

    首先不知道怎么模拟打开浏览器的童鞋先看我的上篇文章:http://blog.csdn.net/Trisyp/article/details/78688106 这篇文章涉及到前期配置,所以不会的一定要先 ...

  9. python斐波那契递归_Python递归斐波那契示例

    python斐波那契递归 Good day, learners! In this tutorial we are going to learn about Python Recursion and u ...

最新文章

  1. 包子和饺子之扫地机器人_扫地机器人和体重秤在一起,能生出什么宝宝? | 爆笑囧图...
  2. numpy 中的三个特别的索引操作 c_, r_, s_
  3. openmp官方源码_MNN推理过程源码分析笔记(一)主流程
  4. Swift学习之使用guard的好处
  5. 微信小程序scroll-wiew 横向滚动问题
  6. 新一代蓝牙5标准开启 会成为物联网的最佳选择吗
  7. Golang基础知识入门详解
  8. WEB打印分页类(JS)
  9. 【论文写作】毕业论文怎么写?
  10. 认识与防御XSS攻击
  11. 银行家算法及其c++代码实现
  12. 高效记忆/形象记忆(05)110数字编码表 0-9
  13. Logstash 时间转换(YYYY-MM-dd HH:mm:ss转Unix时间)
  14. Day10-服务调用-删除课程的同时删除所有小节视频-p158、p159
  15. Fatal error:Cannot ‘break‘ 2 levels in数据库导出错误解决
  16. RINEX 2.11 观测值文件格式说明
  17. 计算机网络技术三级英文,计算机三级网络技术真题整理(国外英文资料).doc...
  18. 【路径规划】基于matlab拓扑图和跟随领导者机器人编队路径规划【含Matlab源码 2500期】
  19. IP-guard功能详解——安全U盘
  20. 3.9使用ValidationSummary控件

热门文章

  1. 解决vim中文乱码问题
  2. MySql的备份与恢复
  3. Kotlin定义静态变量、静态方法
  4. Codeforces Round #498 (Div. 3) - 赛后补题
  5. iOS高仿微信悬浮窗、忍者小猪游戏、音乐播放器、支付宝、今日头条布局滚动效果等源码...
  6. javascript-复制
  7. [FZYZOJ 1073] Password
  8. WPF 去除头部,实现拖动
  9. 线性表9 - 数据结构和算法14
  10. SendMessage 设置TMemo组件的边界