Python 爬虫 之 根据图片网址爬取图片

Python 爬虫 之 根据图片网址爬取图片

 

目录

Python 爬虫 之 根据图片网址爬取图片

一、简单介绍

二、实现原理

三、注意实现

四、实现步骤

五、关键代码


 

一、简单介绍

Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。Python是一种解释型脚本语言,可以应用于以下领域: Web 和 Internet开发、科学计算和统计、人工智能、教育、桌面界面开发、软件开发、后端开发、网络爬虫。

爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息。


爬虫的网页请求:

    网页请求的过程分为两个环节:

    Request (请求):每一个展示在用户面前的网页都必须经过这一步,也就是向服务器发送访问请求。
    Response(响应):服务器在接收到用户的请求后,会验证请求的有效性,然后向用户(客户端)发送响应的内容,客户端接收服务器响应的内容,将内容展示出来,就是我们所熟悉的网页请求

Python 爬虫 之 根据图片网址爬取图片_第1张图片


   网页请求的方式也分为两种

    GET:最常见的方式,一般用于获取或者查询资源信息,也是大多数网站使用的方式,响应速度快。
    POST:相比 GET 方式,多了以表单形式上传参数的功能,因此除查询信息外,还可以修改信息。


本节是为后面批量爬取图片做准备。
 

二、实现原理

1、import requests 进行网页数据请求获取;

2、把解析的数据保存到本地;

 

三、注意实现

1、对应安装相应的库(pip install requests 和 pip install jupyter );

2、若网页有反爬虫机制,获取的时候添加 headers,进行爬虫伪装访问;

 

四、实现步骤

1、安装 requests 库(如果已经安装,可忽略),如下图

Python 爬虫 之 根据图片网址爬取图片_第2张图片

 

2、在命令行中,使用 jupyter notebook 打开 jupyter 工具,会跳转打开一个网页,如下图

 

3、在页面 New 一个 Python,如下图

 

4、网上找到一张图片,接下来我们使用这张图片进行爬虫爬取,如下图

Python 爬虫 之 根据图片网址爬取图片_第3张图片

 

5、鼠标右键——查看元素(浏览器不同查看元素或者是其他说法),可以查看图片的网址,如下图

 

 

Python 爬虫 之 根据图片网址爬取图片_第4张图片

 

Python 爬虫 之 根据图片网址爬取图片_第5张图片

 

6、把网址在 jupyter 上测试爬取,测试该网址没有反爬虫处理,所以放回200,如下图

Python 爬虫 之 根据图片网址爬取图片_第6张图片

 

7、如果返回的不是 200,可以添加 请求头进行伪装爬虫,请求头获取方法如下图

Python 爬虫 之 根据图片网址爬取图片_第7张图片

 

Python 爬虫 之 根据图片网址爬取图片_第8张图片

 

8、接下来,就可以保存图片了,如下图

Python 爬虫 之 根据图片网址爬取图片_第9张图片

 

9、本地就获取到图片,如下图

Python 爬虫 之 根据图片网址爬取图片_第10张图片

 

五、关键代码

Pycharm 上整理的代码

# 引入 requests 库
import requests

def get_image(url, headers, image_name):
    """ 爬取图片

    :param url: 图片网址
    :param headers: 请求头
    :param image_name: 保存的图片名称
    """
    # 带请求头的爬虫
    html = requests.get(url, headers)
    print(html)

    # 保存图片到本地
    with open(image_name, "wb") as f:
        f.write(html.content)

def test_get_image():
    """ 测试爬虫爬取图片函数
        
    """
    # 图片网址
    url = "https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3319826565,2904949597&fm=26&gp=0.jpg"
    # 请求头
    headers = {
        "Host": "img0.bdstatic.com",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
    }

    # 保存图片名称
    image_name = "2020Image.jpg"

    # 爬取图片
    get_image(url, headers, image_name)

# 作为运行脚本,才执行此函数
if __name__ == "__main__":
    test_get_image()
    

 

你可能感兴趣的:(python,python,爬虫,爬取图片)