专栏首页python3利用python抓取网页图片

利用python抓取网页图片

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

▎下图感受下:

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

▎网页代码样例:

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

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

[root@plinuxos tmp]# wget http://support.huawei.com/huaweiconnect/data/p_w_upload/forum/201705/03/20170503211729148001.png
--2017-09-02 12:48:40--  http://support.huawei.com/huaweiconnect/data/p_w_upload/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) [p_w_picpath/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

▎抓取代码:

#/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 i 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处理网页信息一文。

▎执行脚本:

[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系统中,然后通过远程软件传输到本地查看。

▎效果如下:

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python3爬虫下载pdf(一)

    用户2398817
  • python中创建和遍历二叉树

    用户2398817
  • 初识 Python

    [root@Client-1]# tar -xf ipython 1.2.1.tar.gz

    用户2398817
  • Linux开发环境第三方库规划

    让工作变得有条理,不乱糟糟,即使存在大量的第三方,也有章可循。简而言之,就是要保持目录的干净(如/usr/local目录),保持文件的干净(如profile文...

    一见
  • RocketMQ分布式消息中间件-Centos7安装运行

    消息队列作为高并发系统的核心组件之一,能够帮助业务系统解构提升开发效率和系统稳定性。最近公司的项目也是用上了RocketMQ,所以这里记录一下RocketMQ环...

    奋斗蒙
  • Uva 10339 - Watching Watches【数论,暴力】

    题目链接:10339 - Watching Watches 题意:两个时钟,一个每天慢a秒,一个每天慢b秒,问两钟重新相遇的时刻 1圈有12 * 60 * 60...

    Angel_Kitty
  • Linux用户管理

    人生不如戏
  • java面试精典SQL语句:测测你会多少

    挑战者
  • *nix环境部署项目常用命令

    今天亲自把项目部署到*nix服务器上,通过SSH Secure Shell Client连接到服务器上,怎么连接就不用说了。

    the5fire
  • 人机智能交互技术(ROS-HRI-人与机器人的智能交互)课程介绍与资料

    这是机器人系统设计与控制技术的后续课程,全部的课程内容包括四门课程(本科),如下:

    zhangrelay

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动