您的位置:首页 > 编程语言 > Python开发

python爬虫爬取网上的照片

2017-03-11 23:28 309 查看

                这里写一个python爬虫爬取国家地理上的一张图片

        最近在网上刚学了python爬虫爬取网上的图片,所以将其记录下来。有时我们在网页上看到的图片是就是一个文件,所以可以通过爬虫爬取下来,保存到电脑之中。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import requests
import os
url='http://image.nationalgeographic.com.cn/2017/0309/20170309042607837.jpg'
root="D://picture//"#建立一个目录,可以将图片保存到其中
path=root+url.split('/')[-1]#将图片的原名截图下来
try:
if not os.path.exists(root):#检查一下我们建立的目录是本就否存在
os.mkdir(root)#如果不存在建立一个目录
if not os.path.exists(path):
r=requests.get(url)
print r.status_code#打印状态码
with open(path,'wb') as f:#打开目录,并将文件写入其中
f.write(r.content)
f.close#关闭文件
print("文件保存成功")
except:
print '出错了'


       可以看一下结果:



        再看一下我们建立文件夹中的文件:



      开打时发现出现问题,于是尝试用Notepad++打开:



         
          这个结果表明,我们爬取的网站对爬虫是拒绝访问的,服务器一般是服务人的而非爬虫,一些网站可能会处于安全等一系列因素的考虑,从而拒绝爬虫的访问,但是我们可以改变下面的语句
r=requests.get(url)
从而做到成功访问。我们可以看看我们访问国家地理网站时给国家地理发送的信息:
            


          从以上返回信息可看出,我们访问国家地理网站时就告诉该网站我们是爬虫,而非浏览器。为了成功访问,我们可以改变User-agent的值,让该网站以为是浏览器的访问,这样便可成功访问。

          改变的总代码为:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import requests
import os
url='http://image.nationalgeographic.com.cn/2017/0309/20170309042607837.jpg'
root="D://picture//"#建立一个目录,可以将图片保存到其中
path=root+url.split('/')[-1]#将图片的原名截图下来
kv={'user-agent':'Mozilla/5.0'}#建立字典,改变user-agent的参数
try:
if not os.path.exists(root):#检查一下我们建立的目录是本就否存在
os.mkdir(root)#如果不存在建立一个目录
if not os.path.exists(path):
r=requests.get(url,headers=kv)
print r.status_code#打印状态码
with open(path,'wb') as f:#打开目录,并将文件写入其中
f.write(r.content)
f.close#关闭文件
print("文件保存成功")
except:
print '出错了'


       我们可以发现返回的状态码为200,表示成功爬取到了。我们再看看我们建立目录中保存的文件:
       
         


                                   程序成功运行了!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: