前言
随着人工智能研究的不断兴起,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小知识,大家一起来学习进步阿!
|