17行python代码抓取刘昊然图片之家的写真

用python来爬取网页信息是很简便的。因为它有很多库来帮助我们实现我们想要的功能。本实验用到的库有:requests和bs4中的BeautifulSoup。这两个库的安装过程如下:

#按住win+R,打开cmd,然后依次输入:
pip install bs4
pip install requests

在windows下爬取的话,还要检查自己是否安装了lxml。如果没安装,也可以直接用pip安装:

pip install lxml

安装好库之后呢,就可以开始爬取刘昊然的写真啦。

  • 首先找到图片之家中刘昊然壁纸的网址:http://www.tupianzj.com/mingxing/xiezhen/liuhaoran/

    由上面网址,我们可以翻译它的信息:http://图片之家/明星/写真/刘昊然

    所以,如果你要抓取其他的明星写真,只需要改变一下网址的最后一个就可以啦!

  • 打开网址,右键,点击“检查”,然后你就可以看到这个网页的源代码啦。然后分析源代码,发现图片都存在下图的1中,而图片的存放格式都如下图的2、3那样:

  • 找到规律后,我们就可以敲代码啦:

#导入库
from bs4 import BeautifulSoup
import requests #给定网址
URL = "http://www.tupianzj.com/mingxing/xiezhen/liuhaoran/"
#抓取该URL的内容
html = requests.get(URL).text
#解析html,并存放在soup中
soup = BeautifulSoup(html, 'lxml')
#找到上面说的图中1的位置,因为图片都在它之中
img_ul = soup.find_all('div', {"id": "main"})
#创建img文件夹来存放抓取到的图片
import os
os.makedirs('./img/',exist_ok=True)
#由上图的2、3可知道图片的具体位置是在’img src‘中,所以先把所有的img找出来,再一一访问
imgs = ul.find_all('img')
#一一访问图片并下载
for img in imgs:
url = img['src']
r = requests.get(url, stream=True)
image_name = url.split('/')[-1]
with open('./img/%s' % image_name, 'wb') as f:
for chunk in r.iter_content(chunk_size=128):#以128字节大小存放
f.write(chunk)
print('Saved %s' % image_name)
Saved 9-1P31G623590-L.jpg
Saved 9-1P3131419500-L.jpg
Saved 9-1P3031414430-L.jpg
Saved 9-1P3021543180-L.jpg
Saved 9-1P3021123440-L.jpg
Saved 9-1P22G043450-L.jpg
Saved 9-1P1291JR50-L.jpg
Saved 9-1P1221131480-L.jpg
Saved 9-1P1051036070-L.jpg
Saved 9-1P1051001240-L.jpg
Saved 9-1G219115I70-L.jpg
Saved 9-1G1151100100-L.jpg
Saved 9-1G0301436130-L.jpg
Saved 9-1G0041543170-L.png
Saved 9-1FZ91523210-L.png
Saved 9-1FHG13P60-L.png
Saved 9-1F5201911020-L.jpg
Saved 16-1612191430140-L.jpg
Saved 16-160P11A0460-L.jpg
Saved 9-16062G41001227.jpg
Saved 16-1605301305090-L.jpg
Saved 16-16051Q442070-L.jpg
Saved 16-16051Q416050-L.jpg
Saved 16-1605161012270-L.jpg
Saved 16-1604131Z0240-L.jpg
Saved 9-16012Q120410-L.jpg
Saved 9-151224200S00-L.jpg

至此,图片抓取完啦,打开img文件夹看看:



看,图片都下载到这啦。随便点开一张:



帅帅的刘昊然!

用python简便地抓取刘昊然的写真(17行代码)的更多相关文章

  1. 测试开发Python培训:抓取新浪微博抓取数据-技术篇

    测试开发Python培训:抓取新浪微博抓取数据-技术篇   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的se ...

  2. 测试开发Python培训:抓取新浪微博评论提取目标数据-技术篇

    测试开发Python培训:抓取新浪微博评论提取目标数据-技术篇   在前面我分享了几个新浪微博的自动化脚本的实现,下面我们继续实现新的需求,功能需求如下: 1,登陆微博 2,抓取评论页内容3,用正则表 ...

  3. 如何利用Python网络爬虫抓取微信朋友圈的动态(上)

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

  4. Python爬虫实战---抓取图书馆借阅信息

    Python爬虫实战---抓取图书馆借阅信息 原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约 ...

  5. 用python实现的抓取腾讯视频所有电影的爬虫

    1. [代码]用python实现的抓取腾讯视频所有电影的爬虫    # -*- coding: utf-8 -*-# by awakenjoys. my site: www.dianying.atim ...

  6. 利用Python网络爬虫抓取微信好友的签名及其可视化展示

    前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...

  7. 利用Python网络爬虫抓取微信好友的所在省位和城市分布及其可视化

    前几天给大家分享了如何利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,感兴趣的小伙伴可以点击链接进行查看.今天小编给大家介绍如何利用Python网络爬虫抓取微信好友的省位和城市,并且将 ...

  8. 如何利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例

    前几天给大家分享了利用Python网络爬虫抓取微信朋友圈的动态(上)和利用Python网络爬虫爬取微信朋友圈动态——附代码(下),并且对抓取到的数据进行了Python词云和wordart可视化,感兴趣 ...

  9. Python爬虫实现抓取腾讯视频所有电影【实战必学】

    2019-06-27 23:51:51 阅读数 407  收藏 更多 分类专栏: python爬虫   前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问 ...

随机推荐

  1. RxBinding -- 官网说明

    RxBinding -- 官网说明 新建 模板 小书匠 作用 组件 平台绑定 support-v4 绑定 appcompact-v7 绑定 design 库绑定 recyclerview-v7 绑定 ...

  2. 数据库设计(六)第二范式(2NF)?

    For a table to be in the Second Normal Form, it must satisfy two conditions: The table should be in ...

  3. MapReduce实战(六)共同粉丝

    需求: 利用mapReduce实现类似微博中查找共同粉丝的功能.如下: A:B,C,D,F,E,OB:A,C,E,KC:F,A,D,ID:A,E,F,LE:B,C,D,M,LF:A,B,C,D,E,O ...

  4. python -> lambda与def的差别

    lambda能够定义一个匿名函数.而def定义的函数必须有一个名字. 这应该是lambda与def两者最大的差别. 与Javascript不同的是,python中匿名函数与非匿名函数须要使用不同的语法 ...

  5. java.lang.IllegalArgumentException: SessionContext must be an HTTP compatible implementation.:模块化本地测试shiro的一些总结

    项目由于是多模块的,所以,测试的时候我想现将shiro框架进行本地测试,然后再放入框架里面,但是这个困扰我了两天了都,其实我应该想到的,只是想多试试,最后还不如多想想 先说一下系统的基本情况,项目是多 ...

  6. jQuery实现浮动层跟随页面滚动效果

      helloweba.com Author:月光光 Time:2010-11-29 09:02 Tag: jquery  滚动 在本文中,我将介绍一个可以跟随页面滚动的层效果,当用户滚动鼠标滚轮或者 ...

  7. PHP-preg_replace过滤字符串代码

    $str=preg_replace("/\s+/", " ", $str); //过滤多余回车       $str=preg_replace("/& ...

  8. 使用jmeter实现对jar包的调用

    一.前言 在我们测试接口的过程中,可能有时需要用到第三方jar包来生成一些测试数据(如有时需要对参数的输入值使用第三方jar包进行加密操作),涉及到这种的情况,普遍做法是:手动调用jar包获得需要的值 ...

  9. 蓝桥杯 第三届C/C++预赛真题(9) 夺冠概率(手工计算概率)

    足球比赛具有一定程度的偶然性,弱队也有战胜强队的可能. 假设有甲.乙.丙.丁四个球队.根据他们过去比赛的成绩,得出每个队与另一个队对阵时取胜的概率表: 甲 乙 丙 丁 甲 - 0.1 0.3 0.5乙 ...

  10. uva748 - Exponentiation 高精度小数的幂运算

    uva748 - Exponentiation   Exponentiation  Problems involving the computation of exact values of very ...