Python爬虫之爬取网站图片

news/2024/5/20 18:32:44/文章来源:https://fff2zrx.blog.csdn.net/article/details/82080260

暑假在家练科三的时候无聊突然想重拾Python,之前简单的学了学Python2的语法,但以后主流是Python3,就下了Python3,pycharm对着别人的教程试了试爬虫,我之前python2的时候爬虫主要用urllib,urllib2这两个,然后是通过正则匹配图片网址,此次python3主要用requests,解析图片网址主要用beautiful soup,几日下来算是可以基本完成爬取图片功能,写下了以便复习。

爬虫这个当然大多数人入门都是爬美女图片,我当然也不落俗套,首先也是随便找了个网址爬美女图片

from bs4 import BeautifulSoup
import requestsif __name__=='__main__':url='http://www.27270.com/tag/649.html'headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"}req = requests.get(url=url, headers=headers)req=requests.get(url=url,headers=headers)req.encoding = 'gb2312'html=req.textbf=BeautifulSoup(html,'lxml')targets_url=bf.find('div',class_='w1200 oh').find_all('a',target='_blank')for each in targets_url:img_req=requests.get(url=each.get('href'),headers=headers)img_req.encoding = 'gb2312'html = img_req.textbf = BeautifulSoup(html, 'lxml')img_url = bf.find('div', class_='articleV4Body').find('img')['src']name=each.img.get('alt')+'.jpg'path=r'C:\Users\asus\Desktop\新建文件夹'file_name = path + '\\' + nametry:req1=requests.get(img_url,headers=headers)f=open(file_name,'wb')f.write(req1.content)f.close()except:print("some error")

期间遇到的一个情况是,它到访问img_url的时候总报错连接主机失败,我开始以为是网址加了反爬之类的,但是我单独拿出来一个网址,却可以很容易的访问,百思不得其解,最后咨询大佬告诉我把img_url的每一个都试试看,可能是某一个网址出了问题,找了找果然是有个叛徒,产生的img_url中第二个网址无法访问,怪不得老报错,我应该多试几个的,一叶障目

我同时也是个火影迷,掌握基本方法后准备试试爬取火影图片,也是网址找了个网址:

http://desk.zol.com.cn/dongman/huoyingrenzhe/

可以看到火影的图片是以图集的形式储存的,所以这个下载就比刚才的稍微多了一点步骤

查看网站源代码容易发现,图集的链接所在都是class='photo-list-padding'的li标签里,且链接没有补全

点开其中一个链接, http://desk.zol.com.cn/dongman/huoyingrenzhe/(前面为浏览器自动补全,在代码里需要自己补全)

可以看到图片的下载地址以及打开本图集下一张图片的链接

了解完网站的图片构造后动手写代码,我们筛选出图集的链接后,通过图集的链接找到第一张图片下载地址和第二张图片的链接,通过第二张的链接找到第二张的下载地址和第三张的链接,循环下去,直到本图集到底,接着开始第二个图集,直到所有图集下载完毕,代码如下,为了方便循环,我们集成下载图片功能为download函数,解析图片网址功能为parses_picture:

from bs4 import BeautifulSoup
import requestsdef download(img_url,headers,n):req = requests.get(img_url, headers=headers)name = '%s'%n+'='+img_url[-15:]path = r'C:\Users\asus\Desktop\火影壁纸1'file_name = path + '\\' + namef = open(file_name, 'wb')f.write(req.content)f.closedef parses_picture(url,headers,n):url = r'http://desk.zol.com.cn/' + urlimg_req = requests.get(url, headers=headers)img_req.encoding = 'gb2312'html = img_req.textbf = BeautifulSoup(html, 'lxml')try:img_url = bf.find('div', class_='photo').find('img').get('src')download(img_url,headers,n)url1 = bf.find('div',id='photo-next').a.get('href')parses_picture(url1,headers,n)except:print(u'第%s图片集到头了'%n)if __name__=='__main__':url='http://desk.zol.com.cn/dongman/huoyingrenzhe/'headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"}req = requests.get(url=url, headers=headers)req=requests.get(url=url,headers=headers)req.encoding = 'gb2312'html=req.textbf=BeautifulSoup(html,'lxml')targets_url=bf.find_all('li',class_='photo-list-padding')n=1for each in targets_url:url = each.a.get('href')parses_picture(url,headers,n)n=n+1

期间遇到的一个情况是每次一个图集到底的时候,就会产生报错,因为找不到下一张图片的链接了,于是我便加上try语句来捕捉这一报错,让程序继续下去,有了bf果然比正则表达式简单,可以通过标签属性很方便的找到想要的信息。

下载情况:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_774518.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站运营之比较和差异化

网站运营之比较和差异化 人类内心有很多情绪,其中一种最基本的情绪是嫉妒。人类社会的幸福不在于你拥有什么,而在于比较。这个比较可能是负面的,也可能是正面的。比如说,良好的竞争,这是一种正向的比较,能…

网站运营之前后一致

网站运营之前后一致 谈判大师罗杰道森在谈个人影响力时提到“敬畏力”的概念,认为敬畏力来自于人们言行一致的力量。有些人的敬畏力强,有些人的敬畏力弱。但是不管如何,大多数人都有一个心理趋向,即保持前后一致。人们不太喜欢前…

一个使用Ruby on Rails开发LBS网站的简单实例

一个使用Ruby on Rails开发LBS网站的简单实例 cheungmine 2011-7 这几天一直在学习使用Ruby on Rails(RoR),想建立一个功能全面一点的LBS(Location Based Service)网站。但是对于我这个RoR的初学者(仅有几天时间)来说,毕竟太复杂…

实战SEO——实用技法与案例剖析

实战SEO——实用技法与案例剖析 藏锋者编著 ISBN978-7-121-14273-4 2011年9月出版 定价:55.00元 16开 472页 内 容 简 介 本书针对SEO细节操作、技术实施、实际案例进行了详细分析,主要包括建站前的SEO策划、网站上线前的本地SEO、上线后的SEO方…

网站结构优化的基本方法

网站结构优化的基本方法 网站结构优化就是对网站页面的存储方式(物理结构)、内部链接关系(逻辑结构)进行合理的调整,以减少网站的目录层级,优化普通页面与重要页面之间的链接深度,增加重要页面…

什么是网站物理结构、逻辑结构

什么是网站物理结构、逻辑结构 网站结构分为物理结构和逻辑结构两种,很多刚刚接触SEO的新手,往往搞不清楚物理结构和逻辑结构的异同,进而造成自己的网站结构规划很乱,不但搜索引擎不容易快速建立起网站的整体结构体系&#xff0c…

NoJS的网站数据统计

目前主流的网站分析工具都是通过JavaScript来实现数据的获取的,如Google Analytics就是通过在网页中嵌入一段JS代码,当该网页被浏览时,JS代码被加载,就会向Google Analytics的数据收集服务器发送用户浏览该网页的相应数据&#xf…

Freestyle第4期之网站前端安全分享XSS进阶篇

写在前面 2 知识回顾 2 XSS的定义2 XSS的危害2 XSS的产生3 如何攻击 4 深入解读XSS4 XSS分类4 XSS出现场景4 实战XSS9 攻击篇 9 防御篇 10 其他 11 写在前面 本周五为大家带来的是安全分享之XSS的进阶篇,这部分的内容是基于前2次的安全分享的基础之上的,…

苹果cms模板_苹果cms怎么做seo?

苹果cms怎么做seo?苹果cms怎么做seo?点击查看:苹果cms如何修改分类的标题、关键字、描述等seo参数为了让自己的网站排名更靠前,现在很多网站都在做SEO优化,对于很多网站来说,都想通过搜索引擎来让自己的网站…

动态网站的技术路线_3个会让你上瘾的小网站!第三个特别好玩

感谢你关注“最佳应用”每篇文章解决某行业或某人群的一个痛点第八十四期原创文章By:小佳昨天刷抖音听了一首很有魔性的歌曲,结果分享到社交平台,没想到被很多键盘侠喷了,留言全是批判“审美有毒”,这种垃圾歌曲能火就…

怎么去调需要登录的接口_Java 爬虫遇到需要登录的网站,该怎么办?

点击上方“平头哥的技术博文”,选择“关注公众号”技术文章第一时间送达!这是 Java 网络爬虫系列博文的第二篇,在上一篇 Java 网络爬虫,就是这么的简单 中,我们简单的学习了一下如何利用 Java 进行网络爬虫。在这一篇中…

访问虚拟机上的本地网站

我的小程序: 待办计划:给自己立个小目标吧!1首先检查虚拟机是否安装httpd服务,命令:rpm -q httpd;若显示下图内容,说明已安装,进入步骤2,否则需要你安装httpd服务; 2.查看…

手机访问本地电脑网站

1.前提是手机和电脑处于同一个局域网内; 2.查看电脑ip,手机浏览器输入该ip访问,若提示不能打开网页进入步骤3;若提示403 forbidden,进入步骤4; 3.手动开放防火墙80端口,参考http://jingyan.ba…

win2008r2发布php网站,Server2008r2发布wordpress站点(环境)

1. 安装vcredist_x64.exe2. 解压php解释器&#xff0c;即 php-5.6.37-nts-Win32-VC11-x64.zip3. 配置php.ini拷贝php.ini-development&#xff0c;改名为php.ini&#xff0c;并进行如下修改&#xff1a;<1>扩展插件的路径 extension_dir “c:\PHP\ext”<2>设置要引…

给做假网站的提个醒——我承认我无聊了

刚才闲着没事&#xff0c;打开自己的一堆QQ挨个看看。不是我喜欢用很多QQ&#xff0c;我一直主要用一个QQ号码&#xff0c;还有一个是6位的号码&#xff0c;虽然不怎么用&#xff0c;但看在号码比较短的份上还经常登录看看&#xff0c;免得被收回。不过自从在腾讯开放平台作应用…

[全网首发]seo实战密码:60天网站流量提高20倍第一部分

下载地址 弄的很累&#xff0c;先发第一部分1-300页&#xff0c;过几天再上第二部分&#xff0c;大家先看着。也够看些天了 http://www.aiitee.com/thread-5240-1-1.html

[全网首发]seo实战密码:60天网站流量提高20倍第一部分

下载地址 弄的很累&#xff0c;先发第一部分1-300页&#xff0c;过几天再上第二部分&#xff0c;大家先看着。也够看些天了 http://www.aiitee.com/thread-5240-1-1.html

[全网首发]seo实战密码:60天网站流量提高20倍第一部分

下载地址 弄的很累&#xff0c;先发第一部分1-300页&#xff0c;过几天再上第二部分&#xff0c;大家先看着。也够看些天了 http://www.aiitee.com/thread-5240-1-1.html

[全网首发]seo实战密码:60天网站流量提高20倍第一部分

下载地址 弄的很累&#xff0c;先发第一部分1-300页&#xff0c;过几天再上第二部分&#xff0c;大家先看着。也够看些天了 http://www.aiitee.com/thread-5240-1-1.html

替代Google Earth查历史影像的网站

今天要向大家推荐的是2020年我们给你大家推荐的可以查看历年影像的网站—— 今天我们再详细介绍它的应用&#xff01; World Imagery Wayback 那时应该是Google地球刚被禁止不久&#xff0c;有学员在群里提问&#xff0c;想有一个可以暂时替代的产品&#xff0c;那时没想到Go…