前言

网络爬虫,又被称为网页蜘蛛、网络机器人,爬虫分为通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、Deep Web 爬虫这四种。“虫如其名”,爬虫并不是一种我们熟知的无脊椎动物中的节肢动物,而是一类计算器程序或脚本,该程序能够自动爬取万维网中的信息,并能够按照一定的要求加工这些信息。

c/c++、java、python、php等语言都可以用来写爬虫程序,但总的来讲,目前大多数开发人员都会选择python、php等语言进行开发爬虫程序,所以今天杰瑞将使用python教大家制作一个非常简单实用的爬虫程序。(文末送福利)

在浏览这篇教程之前,您需要有python的知识基础或其他编程语言基础,如果您没有编程基础,那么也不要担心,小编会尽量把教程做的通俗易懂一看就明白。

前期准备

爬虫原理

当我们在网络中寻找我们需要的信息时,一般都会通过浏览器进行操作,浏览器会将我们的请求发送给存放信息的服务器,服务器收到发过来的请求之后会把请求的数据返回给浏览器。

浏览器与服务器交互示意图

形象一点讲,浏览器就相当于我们人类的翻译官,将我们的人类语言翻译给服务器听,服务器听懂之后就开始执行我们的命令,然后将结果说给浏览器听,浏览器再将结果翻译给我们人类。所以我们的爬虫就是通过不断地模仿浏览器发出的指令,让服务器不断地执行相应的命令,此时服务器并不知道发送命令的是人类还是爬虫,因为服务器只能听得懂浏览器“语言”。

为什么要这样呢?我们人类自己发出命令不好吗?为什么要让机器代劳呢?举个例子:例如你正在做人工智能中的图片识别,这将需要到很多训练数据——图片,你总不能手动地一个个地将图片下载下来吧?这时候爬虫的作用就来了!

python爬虫原理(本例完整代码在末尾处)

在python中,我们可以使用requests.get()向目标地址发起请求,在这之后服务器会返回一些数据,在这些数据里面就有猫、狗图片的存放地址,我们需要将图片地址和HTML标签以及其他无用信息区分开来,所以将使用到正则化的方法,在这里可以使用re库,这个库自带一些正则化方法。

最后我们需要将指定url中的文件下载到电脑中,这将用到urllib库中的request.urlretrieve()方法。

代码教程

首先按照惯例我们先把将要使用到的库导入到py文件中。

import requests

import json

import urllib

import re

然后开始编写我们的爬取程序,这里杰瑞以百度图片为例(请求地址在地址栏上,区别只是在word关键字上),程序详解在下面的注释当中。


requests_content的text属性就是服务器返回的文本数据,里面包含了一些HTML标签和JavaScript脚本代码。

密密麻麻的返回结果

这是我们将使用正则化方法来把图片地址提取出来。


最后将url中的图片文件下载到电脑上。

运行结果

小编这里批量下载了一些电脑壁纸,情况如何一起来看看吧!

完整代码

都看到这里了,相信您对这篇文章一定很感兴趣吧?

所以就请 留言 点赞 关注

小编会坚持分享各种实用教程和干货

import requestsimport jsonimport urllibimport re"""number :下载个数path :下载地址save_path :保存地址"""def download_img_from_path(keyword,number,save_path):#向指定地址发起GET请求requests_content = requests.get('百度请求地址'+keyword)#使用正则化方法分析出图片地址img_url = re.findall('"objURL":"(.*?)",', requests_content.text, re.S)for i in range(number):urllib.request.urlretrieve(img_url[i],save_path+str(i)+'.jpg' )print('地址为:' + img_url[i])download_img_from_path('壁纸', 10, '你的存放地址')

知道你对Python感兴趣,便为你准备了这套python学习资料,

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑培训的。

一方面是学习时间相对较短,学习内容更全面更集中。

包括:Python web开发,Python爬虫,Python数据分析,人工智能等学习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

超简单的python爬虫教程来了!批量爬取图片,机器学习必备技能(附资源)相关推荐

  1. python爬虫实践(1)爬取图片网站的高清壁纸

    python爬虫实践(1)爬取图片网站的高清壁纸 robots.txt协议: 爬取网站之前首先检查该站点根目录下是否存在robots.txt,如果存在,就会按照该文件中的内容来确定访问的范围:如果该文 ...

  2. python爬虫抓取图片-简单的python爬虫教程:批量爬取图片

    python编程语言,可以说是新型语言,也是这两年来发展比较快的一种语言,而且不管是少儿还是成年人都可以学习这个新型编程语言,今天南京小码王python培训机构变为大家分享了一个python爬虫教程. ...

  3. Python爬虫入门教程:超级简单的Python爬虫教程

    这是一篇详细介绍 [Python]爬虫入门的教程,从实战出发,适合初学者.读者只需在阅读过程紧跟文章思路,理清相应的实现代码,30 分钟即可学会编写简单的 Python 爬虫. 这篇 Python 爬 ...

  4. 超级简单的Python爬虫教程,python爬虫菜鸟教程官网

    毫无基础的人如何入门 Python ? Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编 ...

  5. python爬虫入门教程(非常详细),超级简单的Python爬虫教程

    一.基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序. 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HT ...

  6. python爬虫实战1:批量爬取网址图片

    1.爬虫基础知识 目前,爬虫的相关知识了解了以下这么多. 2.爬取图片的步骤 学习了很多视频教程,基本介绍爬虫都是主要分3步: 1.请求网页 2.解析网页 3.保存图片 3.爬虫实战 唯有实战,才能提 ...

  7. Python爬虫教程:验证码的爬取和识别详解

    今天要给大家介绍的是验证码的爬取和识别,不过只涉及到最简单的图形验证码,也是现在比较常见的一种类型. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里 ...

  8. python爬虫代码1000行-Python爬虫教程(16行代码爬百度)

    最近在学习python,不过有一个正则表达式一直搞不懂,自己直接使用最笨的方法写出了一个百度爬虫,只有短短16行代码. 首先安装必背包: pip3 install bs4 pip3 install r ...

  9. python爬虫教程:Scrapy框架爬取Boss直聘网Python职位信息的源码

    今天小编就为大家分享一篇关于Scrapy框架爬取Boss直聘网Python职位信息的源码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 分析 使用Crawl ...

最新文章

  1. extjs2.0 ie8 下拉树_extjs自定义下拉树
  2. HashMap的31连环炮,我倒在第5个上
  3. linux操作系统教学,Linux操作系统教学视频
  4. C# List集合转Json字符串示例代码
  5. 创建外部快照_快照事件:现在如何仅通过拍照即可创建日历事件
  6. JxBrowser概述与简单应用
  7. Java JDBC连接Oracle,java面试题,java初级笔试题
  8. 实现 int 类型(比如id)的模糊查询
  9. 二级c语言笔试57,二级C语言笔试真题与答案.doc
  10. soem学习2 osal
  11. mysql数据库安装过程蜿蜒曲折
  12. vue第五天笔记02——vuex数据仓库
  13. 树莓派3代ROS系统镜像文件下载链接
  14. 一文讲透商业智能BI 到底是什么[转]
  15. 华硕主板通过奥创与海盗船内存条神光同步
  16. HDU 3265 - Posters
  17. ISO9001质量体系认证是什么?办理步骤
  18. 业财一体化升级设计说明
  19. PDF格式的文档如何编辑修改
  20. ZZNUOJ_用C语言编写程序实现1261:小媛在努力(附完整源码)

热门文章

  1. html博客图文设计,设计基本功!帮你掌握图文排版的5个小技巧—UI博客精选
  2. LIBCURL上传文件, 下载文件,打开网页,POST数据,支持https等一系列函数方便各种模拟登陆注册账户
  3. siege 用户登录_Web压力测试工具Siege介绍
  4. matlab遗传算法整数规划,非线性整数规划的遗传算法Matlab程序
  5. 【什么是OTP?OTP介绍?】
  6. (Xilinx)FPGA中的差分信号
  7. java冷知识:代码行数多少才算大项目?
  8. 多元线性回归—自相关
  9. 使用ibatis的iterate标签实现批量插入
  10. PHP获取当月第一天及最后一天