文档章节

python3爬虫爬取网页图片简单示例

IT民工_柒晓白
 IT民工_柒晓白
发布于 2017/10/19 21:43
字数 873
阅读 536
收藏 4

   本人也是刚刚开始学习python的爬虫技术,然后本来想在网上找点教程来看看,谁知道一搜索,大部分的都是用python2来写的,新手嘛,一般都喜欢装新版本。于是我也就写一个python3简单的爬虫,爬虫一下贴吧的图片吧。话不多说,我们开始。

首先简单来说说一下知识。

一、什么是爬虫?

网页上面采集数据

二、学习爬虫有什么作用?

做案例分析,做数据分析,分析网页结构.......

三、爬虫环境

需求:python3x  pycharm

模块:urllib 、urllib2、bs4、re

四、爬虫思路:

1.      打开网页,获取源码。

*由于多人同时爬虫某个网站时候,会造成数据冗余,网站崩溃,所以一些网站是禁止爬虫的,会返回403拒绝访问的错误信息。----获取不到想要的内容/请求失败/IP容易被封……..等

*解决办法:伪装——不告诉网站我是一个脚本,告诉它我是一个浏览器。(加上随便一个浏览器的头部信息,伪装成浏览器),由于是简单例子,那我们就不搞这些骚操作了。

2.     获取图片

*Find函数 :只去找第一个目标,查询一次

*Find_all函数: 找到所有的相同的目标。

这里可能有一个解析器的问题,我们也不说了,出问题的同学百度一堆解决办法。

3.      保存图片地址与下载图片

*a.使用urlib---urlretrieve下载(保存位置:如果保存在跟*.py文件同一个地方,那么只需要文件夹名称即可,如果是其他地方,那么得写绝对路径。)

算了,不说那么多废话,既然是个简单例子,那我就直接贴代码吧。相信也没多少人呢看不懂。

提一句:用BeautifulSoup 就可以不用正则;爬虫用正则,Bs4, xpath三种 选择一个就好。当然也可以混合使用,也还有其他种。

爬取地址:http://tieba.baidu.com/p/3840085725

代码如下:

import urllib.request
import re
import os
import urllib

#根据给定的网址来获取网页详细信息,得到的html就是网页的源代码
def getHtml(url):
    page = urllib.request.urlopen(url)
    html = page.read()
    return html.decode('UTF-8')

def getImg(html):
    reg = r'src="(.+?\.jpg)" pic_ext'
    imgre = re.compile(reg)                              #转换成一个正则对象
    imglist = imgre.findall(html)                        #表示在整个网页中过滤出所有图片的地址,放在imglist中

    x = 0                                                #声明一个变量赋值
    path = 'H:\\python lianxi\\zout_pc5\\test'           #设置保存地址


    if not os.path.isdir(path):
        os.makedirs(path)                           # 将图片保存到H:..\\test文件夹中,如果没有test文件夹则创建
    paths = path+'\\'                               #保存在test路径下

    for imgurl in imglist:

        urllib.request.urlretrieve(imgurl,'{0}{1}.jpg'.format(paths,x)) #打开imglist,下载图片保存在本地,
                                                                        #format格式化字符串
        x = x + 1
        print('图片已开始下载,注意查看文件夹')
    return imglist

html = getHtml("http://tieba.baidu.com/p/3840085725")         #获取该网址网页详细信息,html就是网页的源代码
print (getImg(html))                                          #从网页源代码中分析并下载保存图片

 

最后效果如图:

好了,教程到这里就结束了,更多精彩,敬请关注:IT民工_柒晓白

(ps:对于python本人也是新手,文章有任何错误请多多包涵)

 

© 著作权归作者所有

共有 人打赏支持
上一篇: 入驻开源中国,
下一篇: 入驻开源中国,
IT民工_柒晓白
粉丝 0
博文 2
码字总数 904
作品 0
贵阳
私信 提问
加载中

评论(1)

IT民工_柒晓白
IT民工_柒晓白
CSDN博客同步更新。
5个python爬虫教材,让小白也有爬虫可写,含视频教程!

认识爬虫   网络爬虫,如果互联网是一张蜘蛛网,网络爬虫既是一个在此网上爬行的蜘蛛,爬了多少路程即获取到多少数据。 python写爬虫的优势   其实以上功能很多语言和工具都能做,但是用...

柯西带你学编程
2018/06/12
0
0
使用Python爬虫爬取简单网页(Python爬虫入门)

今天我们来看一看使用Python爬取一些简单的网页。 所用工具:IDLE (Python 3.6 64-bit) 一. 爬取京东商品页面 我将要爬取的是这个东京商品页面信息,代码如下: 二. 爬取亚马逊商品页面 我接...

小_橙_子
2018/08/01
0
0
Python爬虫如何快速上手,并达到爬取大规模数据的水平

互联网的数据爆炸式的增长,而利用 Python 爬虫我们可以获取大量有价值的数据: 1.爬取数据,进行市场调研和商业分析 爬取知乎优质答案,筛选各话题下最优质的内容; 抓取房产网站买卖信息,...

技术小能手
2018/06/28
0
0
这是我最想推荐给程序员们看的基于Python3.4实现的爬虫书

互联网包含了迄今为止最有用的数据集,并且大部分可以免费公开访问。但是,这些数据难以复用。它们被嵌入在网站的结构和样式当中,需要抽取出来才能使用。从网页中抽取数据的过程又称为网络爬...

异步社区
2018/07/11
0
0
如何用Python获取今日头条上面三千美女图,且看教程

我们的学习爬虫的动力是什么? 有人可能会说:如果我学好了,我可以找一个高薪的工作。 有人可能会说:我学习编程希望能够为社会做贡献(手动滑稽) 有人可能会说:为了妹子! ..... 其实我们...

Python新世界
2018/08/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux Wireshark普通用户启动使用方案

当系统安装好Wireshark后请正常启动是否可以进行正常使用,如果不行请参考下列指导 向系统添加一个用户组 sudo groupadd wireshark //如提示此组存在可跳过 将指定用户添加到这个组中 sudo...

CHONGCHEN
今天
1
0
CSS 选择器参考手册

CSS 选择器参考手册 选择器 描述 [attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。...

Jack088
今天
2
0
数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
今天
4
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
4
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部