全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python 爬虫图片简单实现

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小时内与您取得联系。