利用python抓取网页图片

简介:

    近期在家想看华为官方的【IP,图话技术,微图】系列文档,奈何家里是长宽,基本打不开页面,刷新多次,心力憔悴。


▎下图感受下:

wKiom1mqK53QvjMZAAEguKiuqIc274.png-wh_50

    突然想起上次华为云大会送了台云服务器,一直被我用来做linux实验机。于是,突发奇想,利用python下载图片,然后利用工具传递到本地阅读,权当练手了。


▎网页代码样例:

wKiom1mqMJfBxWHdAAQD_irs6zw538.png-wh_50

查看网页源代码,可以找到图片所在的网址,加上网站前缀就是真正的图片目标地址。

在linux系统中,直接wget就能下载这些图片,验证图片地址的真实性。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@plinuxos tmp] # wget http://support.huawei.com/huaweiconnect/data/attachment/forum/201705/03/20170503211729148001.png
--2017-09-02 12:48:40--  http: //support .huawei.com /huaweiconnect/data/attachment/forum/201705/03/20170503211729148001 .png
Resolving support.huawei.com (support.huawei.com)... 221.193.246.61, 121.18.169.18, 101.28.252.205
Connecting to support.huawei.com (support.huawei.com)|221.193.246.61|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 495335 (484K) [image /png ]
Saving to: ‘20170503211729148001.png’
 
100%[=============================================================>] 495,335     1.98MB /s    in  0.2s   
 
2017-09-02 12:48:41 (1.98 MB /s ) - ‘20170503211729148001.png’ saved [495335 /495335 ]
 
[root@plinuxos tmp] # ls
20170503211729148001.png  downpic.py       mysql.sock   test .py   zrlog.sql
db01.sql                  hsperfdata_root  mysql.sql    test .sql


▎抓取代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#/usr/bin/env python                                  
import  requests,bs4,time
headers = { 'User-Agent' 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0' }
url = 'http://support.huawei.com/huaweiconnect/enterprise/thread-400343.html'
urlhtml = requests.get(url,headers = headers)
urlhtml.raise_for_status()
pichtml = bs4.BeautifulSoup(urlhtml.text[:], 'html.parser' )
piclink = pichtml.select( 'p span img[src]' )
if  __name__ = = '__main__' :
     piclist = []
     for  in  range ( len (piclink)):
         picdic = piclink[i].attrs
         newpicdic = 'http://support.huawei.com' + picdic[ 'src' ]
         newpic = requests.get(newpicdic)
         picname = str (time.strftime( "%Y%m%d00" ,time.localtime(time.time()))) + str (i) + '.png'
         with  open (picname, 'wb' ) as  file :
             file .write(newpic.content)

代码部分的解析,可以参见学习笔记,也可以参照往期利用python处理网页信息一文。


▎执行脚本:

1
2
3
4
5
6
7
8
9
10
[root@plinuxos tmp] # python3 downpic.py 
[root@plinuxos tmp] # ls -lhrt *.png
-rw-r--r--. 1 root root 484K Sep  2 12:50 20170902000.png
-rw-r--r--. 1 root root 241K Sep  2 12:50 20170902001.png
-rw-r--r--. 1 root root 542K Sep  2 12:50 20170902002.png
-rw-r--r--. 1 root root 607K Sep  2 12:50 20170902003.png
-rw-r--r--. 1 root root 500K Sep  2 12:50 20170902004.png
-rw-r--r--. 1 root root 146K Sep  2 12:50 20170902005.png
-rw-r--r--. 1 root root 381K Sep  2 12:50 20170902006.png
-rw-r--r--. 1 root root 463K Sep  2 12:51 20170902007.png

可以看到,图片已经下载到了linux系统中,然后通过远程软件传输到本地查看。


▎效果如下:

wKioL1mqLerDAu2MAALxrs1zQbE602.png-wh_50


好了,练手完,接下来,博主就可以安心的打磨网络知识了。。。









本文转自Grodd51CTO博客,原文链接:http://blog.51cto.com/juispan/1962116,如需转载请自行联系原作者

相关文章
|
5天前
|
数据安全/隐私保护 Python
python 图片打水印 透明图片合并
python 图片打水印 透明图片合并
8 1
|
5天前
|
数据采集 存储 JavaScript
使用Python截取网页内容的综合指南
使用Python截取网页内容的综合指南
24 1
|
5天前
|
前端开发 JavaScript Python
使用Python读取本地行情csv文件,做出web网页画出K线图实现案例
【5月更文挑战第4天】使用Python绘制K线图的步骤:1) 安装pandas, matplotlib和Flask;2) 用pandas读取CSV文件并处理数据;3) 创建Flask应用,渲染包含K线图数据的HTML;4) 编写HTML,使用ECharts库绘制K线图。
28 0
|
5天前
|
存储 索引 Python
python图片九宫格图片处理
本篇文章介绍了一个Python项目的实现,项目能够处理图片并将其组合成九宫格或四宫格,同时还具备音乐播放功能,对于初学者来说是一个可以进行实战学习的初级项目。
|
5天前
|
存储 计算机视觉 Python
python实现Gif图片的字符画
这是一个Python实战项目,旨在将GIF动态图转化为ASCII字符动画。项目适合有一定Python基础的学习者,主要使用os、imageio、PIL库。首先,代码导入所需库,然后通过PIL创建空白图片并添加文本。接着,程序读取GIF,拆分帧并转为字符画,存入“tmp”目录。同时,代码提供了清空“tmp”目录、将灰度值映射为ASCII字符、将图片处理成字符画的函数。此外,还有创建新画布和合成GIF的步骤。主函数调用这些模块,最终将ASCII字符画合并成GIF。项目展示了将动态图像转换为ASCII艺术的过程。
|
5天前
|
Python
使用Python解析网页和正则表达式
使用Python解析网页涉及`requests`和`re`模块。首先导入这两个模块,然后用`requests.get()`发送HTTP请求获取URL内容。通过`.text`属性得到HTML文本。接着,利用正则表达式和`re.search()`匹配特定模式(如网页标题),并用`.group(1)`获取匹配数据。最后,对提取的信息进行处理,如打印标题。实际操作时,需根据需求调整正则表达式。
19 2
|
5天前
|
Python
python代码根据点坐标裁切图片
【4月更文挑战第19天】python代码根据点坐标裁切图片
29 2
|
5天前
|
人工智能 Python
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
58 0
|
5天前
|
Python
使用Python的Requests库进行网络请求和抓取网页数据
【4月更文挑战第20天】使用Python Requests库进行网络请求和网页数据抓取的步骤包括:安装库(`pip install requests`)、导入库、发送GET/POST请求、检查响应状态码、解析内容、处理Cookies、设置请求头以及异常处理。通过`response`对象访问响应信息,如`status_code`、`text`、`content`和`cookies`。可设置`headers`模拟用户代理,用`try-except`处理异常。
22 7
|
5天前
|
数据采集 Web App开发 开发者
探秘Python爬虫技术:王者荣耀英雄图片爬取
探秘Python爬虫技术:王者荣耀英雄图片爬取