jpanel不使用jframe保存的图片为空_python爬虫入门|教你简单爬取爱豆的图片

91a05693001f48c374c7ec5350d0daef.png

点击上方蓝色文字关注我们吧~

91a05693001f48c374c7ec5350d0daef.png

一、前言

爬虫是Python的一个重要的内容,使用Python爬虫我们可以轻松的从网络中批量抓取我们想要的数据。 网络爬虫,又称为网页蜘蛛。是一种按照一定规则获取网页内容的程序,爬虫被广泛用于互联网搜索引擎或其他类似网站,例如谷歌、百度,爬虫可以自动采集所有其能够访问到的页面内容,以获取或更新这些网站的数据。从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分。

本文将基于爬取某桌网图片并存储为例,详细介绍Python爬虫的基本流程。

如果你还没安装好python以及IDE的话,可以看下这篇文章:python以及PyCharm安装教程

文末送完整代码!

二、爬虫的基本步骤

1.确定URL(链接)、分析网页

点击下一页URL不发生变化是动态加载;如果网页需要往下拉才能查看更多的内容的一般都是动态加载。

然后查看内容是否在网页源代码里面,如果在的话,一般都是静态网页,反之,则是动态加载网页。

2.模拟浏览器,获取数据

一般用requests、urllib等库实现HTTP网络请求,获取网页源代码或者json数据。

3. 解析网页,提取数据

一般用re正则表达式、Beautiful Soup、xpath等方法提取网页数据。

4.保存数据 提取数据后,可以对文本、视频、图片等文件进行保存。文本可以保存为TXT、DOCX、CSV等文件格式。图片可以保存为jpg等格式。视频可以保存为MP4等格式。

三、确定目标URL,然后进行分析网页

此次爬取的是某桌网一组杨洋的图片,一共9张图片。

目标URL:http://www.win4000.com/meinv215413.html,这是这组图片的首页url。

c5a43052740f924728a3e8d2336c6726.png

我们把网页往下拉,发现下面有这组图的缩减图。

1e947e432c278f030c395b6fe2bfdb6d.png

我们右键查看网页源代码,查看图片内容是否在网页源代码中。

e08672f7bbf4373d3765ea9c1a6abc8a.png

我们CTRL+f查找组图的标题,发现图片内容在网页源代码中,图片的url放在a标签中。其中data-original存的是图片的真实url。

b56ef2e84a7edc9b8c97ba154205015d.png

四、着手写代码

既然知道了网页的url和图片的真实url,以及网页是静态网页,那么就可以正式写代码了。 第一步  导入依赖库
#网络请求库import requests#网页解析库 import re 
re库是python自带的,不需要安装;

requests是外部库,需要用命令行进行安装,具体操作:按住键盘的windows+R键,调出运行窗口,在输入框输入cmd,然后复制命令行:pip install requests到弹出的窗口。

e28b0e33332cead85934ac000ee0de9f.png

第二步  模拟浏览器,请求数据

#模拟浏览器headers={    'User-Agent':'Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/80.0.3987.162Safari/537.36'        }
建立headers这一步是为了告诉网站,你不是爬虫,防止被网页检测到。一般的网站只用这个就行了,但有些网站还需要携带Cookie、Referer等参数。
#请求数据res=requests.get('http://www.win4000.com/meinv215413.html',headers=headers).text
这里用到requests库中的get请求, 之所以是get 请求, 可 以点击鼠标 右键,然后 点击 检查 ; 或者 点击键盘的 F12进行查看 , 具体操作 可以 看下图。

d02443a5de23c12bf010a0be4d0399de.png

把headers参数传进去;text是为了请求网页的源代码。

第三步  解析网页,获取图片url

#解析图片urls=re.findall('data-original="(.*?)" alt="杨洋黑色西装酷帅品牌活动图片"',res)
从上面的分析网页可以知道,我们发现图片的url存在data-original中,我们直接用re中的findall方法进行提取。然后用()括住data-original中的url,括号是表示需要的内容。(re库在此不作详细讲解,下次再出专题) 然后用万能匹配 .*? 来匹配图片的url。 第四步  保存图片
#遍历图片urlfor url in urls:    #用replace对url中的_130_170替换为空。    #这步是为了下载大图,如果url多了_130_170就是缩减图了    urlsd = url.replace('_130_170', '')        #准备图片的名字    file_name = urlsd.split('/')[-1]        #对图片url进行请求,传入headers参数    res_=requests.get(urlsd,headers=headers)        #进行图片保存;    #with open是不断打开文件夹然后保存图片;    #r'D:\untitled1\爬虫④\美桌网_爬取杨洋图片【入门】\杨洋图片\{}'这是保存路径,r是转义字符    #wd是进行二进制保存    #format(file_name)是把图片的名字传入{}中    #as f 是对前面的代码命名为 f    with open(r'D:\untitled1\爬虫④\美桌网_爬取杨洋图片【入门】\杨洋图片\{}'.format(file_name),'wb') as f:                #保存        f.write(res_.content)
运行后,查看下成果,都是高清大图。

dda20f8456640b4366f6ea4219de9846.gif

五、完整代码

# -*-codEing = utf-8 -*-#导入依赖库import requestsimport re#构建请求头,模拟浏览器headers={    'User-Agent':'Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/80.0.3987.162Safari/537.36'        }        #请求数据res=requests.get('http://www.win4000.com/meinv215413.html',headers=headers).text#解析图片urls=re.findall(' ',res)#保存图片for url in urls:    urlsd = url.replace('_130_170', '')    file_name = urlsd.split('/')[-1]    res_=requests.get(urlsd,headers=headers)    with open(r'D:\untitled1\爬虫④\美桌网_爬取杨洋图片【入门】\杨洋图片\{}'.format(file_name),'wb') as f:        f.write(res_.content)
六、结语

1.本文简单的介绍python爬虫的基本步骤、反爬措施,如何分析网页,如何请求数据、提取数据和保存数据。

2.本文因为是新手教程且代码量以及图片较少,所以未使用函数式编程以及多线程爬取。

3.本文只爬取了少量的图片,有点大材小用。爬虫一般是用于爬取大量数据,如果数据量少的话,一般不会使用。

4.下篇文章将在此篇文章的基础之上,进行多页爬取。

 注:本文以及图片仅用于学习以及知识交流!如果侵权,请告知删除!

a22eb40d33a3f478f513c1379213c070.png

205a3d367d295063134b6520122a9d5c.png

扫码识别关注我

948158af27d1819951dc82fb6f1f8b7e.png

32113ee6ae230a2b13ccdf680118bd60.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值