Python学习(2)图片爬取

Python学习(2)图片爬取,第1张

Python学习(2)图片爬取
  • 前言
  • 一. Python准备
  • 二. Python仿真
  • 三. 仿真结果
  • 四. 小结

前言

随着人工智能研究的不断兴起,Python的应用也在不断上升,由于Python语言的简洁性、易读性以及可扩展性,特别是在开源工具和深度学习方向中各种神经网络的应用,使得Python已经成为最受欢迎的程序设计语言之一。由于完全开源,加上简单
易学、易读、易维护、以及其可移植性、解释性、可扩展性、可扩充性、可嵌入性:
丰富的库等等,自己在学习与工作中也时常接触到Python,这个系列文章的话主要就是介绍一些在Python中常用一些例程进行仿真演示!

抓取图片是Python应用较为广泛的一个小功能,之前实验过一个小例程,所以今天来分享一下。本文例程都是基于Python3.8的环境下进行,所以大家在进行借鉴的时候建议最好在3.8.0版本以上进行仿真。

一. Python准备

如何确定自己安装好了python

win+R输入cmd进入命令行程序

点击“确定”

输入:python,回车

看到Python相关的版本信息,说明Python安装成功。

二. Python仿真

新建一个.py文件,输入以下代码,图片也放在与.py文件同级文件夹下

#!/usr/bin/env python 
# -*- coding: utf-8 -*-
# @Time    : 2018/10/31 17:54
# 爬取图片

import requests
from pyquery import PyQuery as pq
import time

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 '
                  '(KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
}
# 这里使用了代理  可以去掉这个代理IP ,这里是为了后面大规模抓取做准备的
proxies = {
    'https': '218.75.69.50:39590'
}


# 请求网页 获取源码
def start_request(url):
    r = requests.get(url, headers=headers, proxies=proxies)
    # 这个网站页面使用的是GBK编码 这里进行编码转换
    r.encoding = 'GBK'
    html = r.text
    return html


# 解析网页 获取图片
def parse(text):
    doc = pq(text)
    # 锁定页面中的img标签
    images = doc('div.list ul li img').items()
    x = 0
    for image in images:
        # 获取每一张图片的链接
        img_url = image.attr('src')
        # 获得每张图片的二进制内容
        img = requests.get(img_url, headers=headers, proxies=proxies).content
        # 定义要存储图片的路劲
        path = "E:\PROJECT\python\images1\" + str(x) + ".jpg"
        # 将图片写入指定的目录 写入文件用"wb"
        with open(path, 'wb') as f:
            f.write(img)
            time.sleep(1)
            print("正在下载第{}张图片".format(x))
            x += 1
    print("写入完成")


def main():
    #url = "http://www.netbian.com"
    url = "http://www.netbian.com/huahui/"
    text = start_request(url)
    parse(text)


if __name__ == "__main__":
    main()

保存.py文件为search_pic.py
输入eixt()退出python,输入命令行进入工程文件目录

输入以下命令,跑起工程

python search_pic.py

没有报错,图片写入成功,运行成功!

三. 仿真结果

注意文件夹一定要对应上,另外就是并不是所有的网站都可以抓取(例程中两个网站是可以的,其他的不敢打包票),要注意网站的编码格式,有些网站会在代码中进行设置,导致连接(抓取)失败。

四. 小结

Python数据抓取在目前大数据风靡的大嘲下,已经越来越常见了,这只是比较简单的一个例程,后续看情况有具体数据需求的话,会尝试一下抓取大批量数据的工程实现。每天学一个Python小知识,大家一起来学习进步阿!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/723406.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存