I前言

在手机上玩instagram时,看见好看的图片总希望能够保存下来,但是instagram app并没有提供保存图片的功能。要怎样保存呢?网上有很多方法,其中还要专门的微信公众号。今天我就用爬虫来获取我想要的instagram的图片,虽然用爬虫来爬取,有一点麻烦,可既然学习了python爬虫,那就学以致用,就用爬虫来试试如何下载instagram图片。下图是我爬取到的图片。

II所需工具和整个爬虫结构

在写这个爬虫会用到的工具有requests,xpath,selenium,这里为什么会用到selenium留到后面再说。爬虫分为两个部分,第一个部分获取到图片链接,第二个部分将图片保存到本地。相对很简单的爬虫,但这里会接触到javascript动态页面的技术。

III爬虫第一部分编写

1.获取到图片的链接

在这个部分,我们的目的很明确,那就是得到图片的绝对地址。首先我们如何得到app上图片的相对地址呢?很简单,打开手机app点击图片右上方的三个小点,把网址复制下来,如下图所示,用pc端打开。

这样,我们就可以在浏览器中就定位到我们要的图片在哪里了,使用审查元素的方式,找到图片的绝对地址。

2.代码编写与踩坑

到这里我们很容易想到用获取网址源码的方式得到这个URL,然后在请求URL的二进制形式,最后写入到本地文件即可。这样的思路没有问题,但instagram这个网址采用了javascript动态加载页面的方式来渲染网页。采用这种技术的网址本身会具备一定的反爬技术,所以如果一上来就reques.get网站源码。我们会得到一个这样子的网页源码。

在得到这样的源码后是不能用xpath找到图片绝对地址的,所以我们需要用到selenium这个工具。使用它来模拟浏览器打开网页,等待JS代码的执行,然后获取网页源码,这样就可以得到一个可以用xpath能处理的网页源码了。分析到这里,已经有了编写这一部分爬虫的思路了。使用selenium模拟浏览器打开网页,返回图片的绝对地址。下面直接上代码。

def getImgUrl(starturl):

'''获取图片连接'''

browser = webdriver.Chrome()

browser.get(starturl)

htmlSoure=browser.page_source

htmlXml=html.fromstring(htmlSoure)

imgurl = htmlXml.xpath('//div[@class="_jjzlb"]/img/@src')

global imgname

imgname= time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))

return imgurl

在代码里,我加了一个全局变量,用来当作图片名字,是用当前的时间来命名的。

IV爬虫第二部分编写

到这里就很简单了,需要注意的是函数getImgUrl返回的地址是list,也就是说需要用下标的方式获取我们所要的URL,然后使用requests以字节的方式访问图片URL就写入到本地了。

def getImg(starturl):

'''保存图片'''

url=getImgUrl(starturl)

ins_pic=requests.get(url[0],headers=headers).content

dirname="insimg"

filename = '%s/%s.jpg' % (dirname, imgname)

with open(filename,'wb') as f:

f.write(ins_pic)

V总结

到这里核心代码已经编写完毕,只有两部分,比较简单。但这个爬虫存在很多问题,首先是慢,这个主要是需要使用到selenium来模拟浏览器等待网页完全渲染完毕。还有一个问题就是运行爬虫程序时,会打开一个浏览器窗口。这个爬虫写的不是很好,仅仅简单实现了我保存图片的需求而已。等日后有了更精的技术再来完善吧,如果有有缘人能看到,还请多多提意见。最后附上爬虫程序地址。

【2】github:爬虫源码

python爬取instom图片_用python爬虫保存instagram图片相关推荐

  1. python爬取电影评分_用Python爬取猫眼上的top100评分电影

    代码如下: # 注意encoding = 'utf-8'和ensure_ascii = False,不写的话不能输出汉字 import requests from requests.exception ...

  2. python爬取百度文库_利用Python语言轻松爬取数据

    利用 Python 语言轻松爬取数据 对于小白来说,爬虫可能是一件非常复杂. 技术门槛很高的事情. 比如有人认为学爬虫必须精通 Python ,然后哼哧哼哧系统学习 Python 的每个知识点,很久之 ...

  3. python爬取百度搜索_使用Python + requests爬取百度搜索页面

    想学一下怎样用python爬取百度搜索页面,因为是第一次接触爬虫,遇到一些问题,把解决过程与大家分享一下 1.使用requests爬取网页 首先爬取百度主页www.baidu.com import r ...

  4. python爬取bilibili弹幕_用Python爬取B站视频弹幕

    原标题:用Python爬取B站视频弹幕 via:菜J学Python 众所周知,弹幕,即在网络上观看视频时弹出的评论性字幕.不知道大家看视频的时候会不会点开弹幕,于我而言,弹幕是视频内容的良好补充,是一 ...

  5. python爬取文献代码_使用python爬取MedSci上的影响因子排名靠前的文献

    使用python爬取medsci上的期刊信息,通过设定条件,然后获取相应的期刊的的影响因子排名,期刊名称,英文全称和影响因子.主要过程如下: 首先,通过分析网站http://www.medsci.cn ...

  6. python爬取旅游信息_用Python爬取了全国近5000家旅游景点,分析国庆去哪玩

    2020 国庆马上就要到了 我想今年大家在家都憋坏了 今年国庆和中秋刚好又是同一天,加起来有 8 天假 这么长的假期,当然是出去 玩玩玩! 但是每次长假期间,你有没有想起被人山人海支配的恐惧呢? 那么 ...

  7. python爬取客流数据_【python爬取雅虎财经数据】“五一”和广交会客流叠加 广州出入境客流呈“双高峰”...

    [python爬取雅虎财经数据]"五一"和广交会客流叠加 广州出入境客流呈"双高峰" 发布时间:2020-10-13 18:06:00 阅读量:650 作者:乔 ...

  8. python爬取高德数据_利用Python爬取高德地图数据

    准备1.高德开放平台注册账户 https://lbs.amap.com/dev/index 验证手机号码.邮箱后进入开发者后台创建一个应用: 并为该应用添加 Key,服务平台选择 web 服务 申请完 ...

  9. python爬取行业数据_用Python进行Web爬取数据

    介绍 我们拥有的数据太少,无法建立机器学习模型.我们需要更多数据! 如果这句话听起来很熟悉,那么你并不孤单!希望获得更多数据来训练我们的机器学习模型是一个一直困扰人们的问题.我们无法在数据科学项目中获 ...

  10. python爬取软件数据_利用Python爬取爬取APP上面的数据

    前言 在我们在爬取手机APP上面的数据的时候,都会借助Fidder来爬取.今天就教大家如何爬取手机APP上面的数据. 环境配置 1.Fidder的安装和配置 下载Fidder软件地址:https:// ...

最新文章

  1. 命令模式 java_JAVA中的命令模式实例教程
  2. “已删除的应用” 流量高
  3. 【蓝桥杯Java_C组·从零开始卷】第八节、集合——list详解
  4. 微信小程序--搜索关键词高亮
  5. HTTP与HTTPS协议
  6. AMD将于年内推出高端Polaris图形处理器
  7. 工具-Sublime Text:便捷设置 小三角
  8. 关于node的聊天室错误
  9. 项目管理工具---用Excel制作甘特图(转)
  10. 4600u黑苹果 r5_黑苹果集显hd4400、hd4600显卡Clover引导驱动方法教程
  11. gensim提取一个句子的关键词_包含关键字 关键词提取 的文章 - 科学空间|Scientific Spaces...
  12. html没有注册类,电脑中ie浏览器提示没有注册类别的三种解决方法
  13. Java14它真的来了, 真是尾气都吃不到了
  14. python手机端给电脑端发送数据_神途传奇 (手机端+电脑端) 数据互通 传奇来袭 www.8wf.com...
  15. 网络线上教育快速发展,CDN高防能否胜任服务器安全防护任务?
  16. 开源月刊《HelloGitHub》第 62 期
  17. 如何用 VS Code remote 插件编辑远程 linux 服务器上的文件
  18. 联想存储8GB缓存00MJ101大量现货做工精细
  19. B. Lorry (贪心)
  20. 用python做股票因子分析_Python与量化多因子——机器学习方法在因子合成上的应用...

热门文章

  1. 计算机主板 也叫系统版,电脑主板是什么
  2. CImage 设置任意像素的RGB值
  3. clearcase、Git之我见
  4. 那些好用的阅读软件(Windows Android)
  5. 计算机设备管理器驱动,设备管理器安装驱动程序的详细教程
  6. python爬虫:Scrapy框架爬取纳斯达克(NASDAQ)股票数据
  7. opencv实时录像+视频打码
  8. js之dialogArguments
  9. 修改.class文件内容
  10. 计算机安全权限不足或配置文件损坏,Windows XP用户配置文件丢失或损坏后的恢复方法...