Python爬取网站图片

python爬取网站的图片

本文是小白内容 大佬忽略哈!
最近公司给我了一个任务,因为后台管理系统里面需要给虚拟的一些用户上传头像,老板就说让我去获取大概10万个头像的图片地址链接,本来是说分给客服去一个一个的复制粘贴的,那需要多长时间啊,然后我在上厕所的时候就突然想到了可以用Python去获取啊,对没听错,就是上厕所的时候想到的!!哈哈哈哈。我本来不怎么会python,那就只有去学了呗。首先我兴致满满的打开百度搜索python获取网站图片,然后出来了,都是获取妹子图,我也不知道是这个网站好爬,还是男人的本色,哈哈哈,像我这么爱学习的人,当然是点开学习呀,然后就******(自己弄出来了)在这里插入图片描述

言归正传

安装环境

首先,我们要学习python,首页要准备它的环境,可以去官网下载python,与电脑系统相匹配的版本,安装好了后,安装这个直接默认安装就可以了,环境安装好了后,我们还需要安装一个编译器(我不知道是叫解释器好还是编译器好,这里就叫的是编译器),因为我们不是安装了python就直接可以去进行编译的,还需要安装一个JetBrains pycharm的软件,这个也可以去官网上面下载,https://www.jetbrains.com 进去后选择
在这里插入图片描述
可以选择下载的版本,一般下载社区版本就可以了,我这里下载的是专业版本,网上也有的说专业版本的可以去破解,我在网上看了好多,破解的比较复杂,但是没关系,我们也可以试用,等我什么时候抽空了,在来破解看看。这个也是默认安装,安装好了后就可以进去啦!在这里插入图片描述
进去后,不要直接就开始写,这样你会发现报错的,那是因为我们还没有将编译器和环境结合到一起,这个时候我们点击File/Settings/Project Interpreter 找到配置地址的地方,然后将你之前安装的环境的地址去进行配置进去,这个时候就已经OK了,要是后面需要安装模块
,比如request、response等等、也可以在这个页面进行下载使用在这里插入图片描述
然后需要什么模块就可以去下载什么模块,这样基本的一个情况就配置好了,可以写代码了在这里插入图片描述

引入模块获取网站源码

我这里的目标网站是一个头像网站,去请求它,获取它的源代码
import request 请求模块

import request #引入请求模块
html = request.get('http://www.jj20.com/tx/') #请求访问这个网站
print (html.text) #打印请求的数据

这样三行代码就可以将一个网站的源码拿过来了,这里我没有对这代码进行编码格式的编写,所以获取过来的是乱码,可以使用编码去进行调整,我们之间将不需要的过滤掉
在这里插入图片描述

抽取需要的数据

在获取到网站的源码后,里面有我们需要的数据和不需要的,怎么去抽取呢?,首先我们引入数据抽取的模块

from lxml import etree  #这句话的意思就是说,从lxml中引入etree这个抽取模块

引入模块后我们就要把之前请求的源代码处理为能进行数据抽取的格式

response = requests.get('http://www.jj20.com/tx/')
html = etree.HTML(response.content)

这里我们使用了response 这个去请求网页,然后用etree去对这个网页进行抽取,这个能理解看懂嘛。我有可能比较啰嗦哈哈哈哈!!,既然我们是要对网页去进行抽取了,敲黑板啦!!!是不是要知道我们抽取的数据他的位置,这样我们才能把他抓出来。打开网页,右键查看源代码,然后找到这个存放图片的链接
在这里插入图片描述
我们会发现它是在ul标签下面的li标签下面的a标签里面
在这里插入图片描述
那我们就开始写代码了

imgs = html.xpath("//ul/li/a/img") # 这句话的意思是说将HTML(网页)里面ul标签下面的li标签下面的a标签里面的img抽取出来存到imgs里面 
# xpath 是数据抽取
for img in imgs:
    ur = img.get("src") #请求img里面的src链接存到ur里面
    name = img.get("alt") #请求img里面的alt存到name
    print(ur) #我需要的是链接所以就打印这个ur 我们去看看吧
    print (html.text)

这个时候我们就可以看到是不是已经打印了我们需要的链接在这里插入图片描述

先这样提交了吧 ,后面的下次再继续写,有问题的可以在帖子下面沟通哟!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值