Python 爬虫图片简单实现

经常在逛知乎,有时候希望把一些问题的图片集中保存起来。于是就有了这个程序。这是一个非常简单的图片爬虫程序,只能爬取已经刷出来的部分的图片。由于对这一部分内容不太熟悉,所以只是简单说几句然后记录代码,不做过多的讲解。感兴趣的可以直接拿去用。亲测对于知乎等网站是可用的。
上一篇分享了通过url打开图片的方法,目的就是先看看爬取到的图片时什么样,然后再筛选一下保存。
这里用到了requests库来获取页面信息,需要注意的是,获取页面信息的时候需要一个header,用以把程序伪装成浏览器去访问服务器,不然可能会被服务器拒绝。然后用BeautifulSoup来过滤多余信息得到图片地址。得到图片后,根据图片的大小过滤掉一些头像、表情包之类的小图片。最后打开或者保存图片的时候选择就比较多了,OpenCV,skimage,PIL等都可以。
程序如下:
# -*- coding=utf-8 -*-
import requests as req
from bs4 import BeautifulSoup
from PIL import Image
from io import BytesIO
import os
from skimage import io
url = "https://www.zhihu.com/question/37787176"
headers = {'User-Agent' : 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Mobile Safari/537.36'}
response = req.get(url,headers=headers)
content = str(response.content)
#print content
soup = BeautifulSoup(content,'lxml')
images = soup.find_all('img')
print u"共有%d张图片" % len(images)
if not os.path.exists("images"):
os.mkdir("images")
for i in range(len(images)):
img = images[i]
print u"正在处理第%d张图片..." % (i+1)
img_src = img.get('src')
if img_src.startswith("http"):
## use PIL
'''
print img_src
response = req.get(img_src,headers=headers)
image = Image.open(BytesIO(response.content))
w,h = image.size
print w,h
img_path = "images/" + str(i+1) + ".jpg"
if w>=500 and h>500:
#image.show()
image.save(img_path)
'''
## use OpenCV
import numpy as np
import urllib
import cv2
resp = urllib.urlopen(img_src)
image = np.asarray(bytearray(resp.read()), dtype="uint8")
image = cv2.imdecode(image, cv2.IMREAD_COLOR)
w,h = image.shape[:2]
print w,h
img_path = "images/" + str(i+1) + ".jpg"
if w>=400 and h>400:
cv2.imshow("Image", image)
cv2.waitKey(3000)
##cv2.imwrite(img_path,image)
## use skimage
## image = io.imread(img_src)
## w,h = image.shape[:2]
## print w,h
#io.imshow(image)
#io.show()
## img_path = "images/" + str(i+1) + ".jpg"
## if w>=500 and h>500:
## image.show()
## image.save(img_path)
## io.imsave(img_path,image)
print u"处理完成!"
这里给出了多种选择,供参考。
# Python
# 爬虫图片
# 爬虫图片简单实例
# Python爬虫爬取一个网页上的图片地址实例代码
# Python之多线程爬虫抓取网页图片的示例代码
# python爬虫获取京东手机图片的图文教程
# Python爬虫实现爬取京东手机页面的图片(实例代码)
# Python实现简单的获取图片爬虫功能示例
# Python爬虫:通过关键字爬取百度图片
# 编写Python爬虫抓取暴走漫画上gif图片的实例分享
# python制作花瓣网美女图片爬虫
# python实现爬虫下载美女图片
# 简单的抓取淘宝图片的Python爬虫
# 简单的Python抓taobao图片爬虫
# Python爬虫实现百度图片自动下载
# 的是
# 这一
# 出了
# 不太
# 感兴趣
# 这是一个
# 然后再
# 较多
# 可以直接
# 不做
# 上一篇
# 拿去
# 需要注意
# 就比
# 说几句
# 伪装成
# 过滤掉
# io
# Image
# headers
相关文章:
如何在建站宝盒中设置产品搜索功能?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
小型网站制作HTML,*游戏网站怎么搭建?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
黑客如何通过漏洞一步步攻陷网站服务器?
如何快速建站并高效导出源代码?
MySQL查询结果复制到新表的方法(更新、插入)
如何选择靠谱的建站公司加盟品牌?
建站之星安装需要哪些步骤及注意事项?
公司网站设计制作厂家,怎么创建自己的一个网站?
小型网站建站如何选择虚拟主机?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
c++ stringstream用法详解_c++字符串与数字转换利器
如何在香港免费服务器上快速搭建网站?
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
英语简历制作免费网站推荐,如何将简历翻译成英文?
建站VPS选购需注意哪些关键参数?
如何通过FTP空间快速搭建安全高效网站?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
h5网站制作工具有哪些,h5页面制作工具有哪些?
如何在橙子建站中快速调整背景颜色?
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
宝塔建站无法访问?如何排查配置与端口问题?
一键网站制作软件,义乌购一件代发流程?
免费网站制作appp,免费制作app哪个平台好?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
如何在万网自助建站中设置域名及备案?
北京专业网站制作设计师招聘,北京白云观官方网站?
再谈Python中的字符串与字符编码(推荐)
公司网站制作价格怎么算,公司办个官网需要多少钱?
如何在云服务器上快速搭建个人网站?
建站主机服务器选型指南与性能优化方案解析
如何用好域名打造高点击率的自主建站?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
如何通过虚拟主机快速完成网站搭建?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
建站主机与服务器功能差异如何区分?
如何制作一个表白网站视频,关于勇敢表白的小标题?
大连网站设计制作招聘信息,大连投诉网站有哪些?
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
安云自助建站系统如何快速提升SEO排名?
重庆市网站制作公司,重庆招聘网站哪个好?
Bpmn 2.0的XML文件怎么画流程图
*请认真填写需求信息,我们会在24小时内与您取得联系。