实际上,简单的图片爬虫就三个步骤:

  1. 获取网页代码
  2. 使用正则表达式,寻找图片链接
  3. 下载图片链接资源到电脑

下面以博客园为例子,不同的网站可能需要更改正则表达式形式。

requests版本:

import requests
import re #获取网页代码
r = requests.get('https://www.cnblogs.com/Mayfly-nymph/p/10663896.html')
#根据正则表达式,找寻图片链接
listpic = re.findall(r'http.+\.jpg',r.text)
print(listpic)
i = 1
#循环获取每个图片链接的内容,以二进制形式输入到文件当中
for url in listpic:
with open('D:\\pip\\'+str(i)+'.jpg', 'wb') as f:
image = requests.get(url)
f.write(image.content)
i+=1

urllib版本:

from urllib import request
import re url = 'https://www.cnblogs.com/Mayfly-nymph/p/10663896.html'
#模拟浏览器发送GET请求
r = request.Request(url)
#对页面进行抓取
with request.urlopen(r) as f:
data = f.read()
#将bytes型数据转化为字符串
data = str(data, encoding='utf-8')
#以正则表达式找寻符合要求的图片链接
listpic = re.findall(r'http.+\.jpg', data)
print(listpic)
i = 1
#循环,下载链接图片资源并保存
for url in listpic:
request.urlretrieve(url,'D:\\pip\\'+str(i)+'.jpg')
i+=1

Python学习--两种方法爬取网页图片(requests/urllib)的更多相关文章

  1. python requests库爬取网页小实例:爬取网页图片

    爬取网页图片: #网络图片爬取 import requests import os root="C://Users//Lenovo//Desktop//" #以原文件名作为保存的文 ...

  2. java爬虫-简单爬取网页图片

    刚刚接触到“爬虫”这个词的时候是在大一,那时候什么都不明白,但知道了百度.谷歌他们的搜索引擎就是个爬虫. 现在大二.再次燃起对爬虫的热爱,查阅资料,知道常用java.python语言编程,这次我选择了 ...

  3. node:爬虫爬取网页图片

    代码地址如下:http://www.demodashi.com/demo/13845.html 前言 周末自己在家闲着没事,刷着微信,玩着手机,发现自己的微信头像该换了,就去网上找了一下头像,看着图片 ...

  4. Python爬虫学习(6): 爬取MM图片

    为了有趣我们今天就主要去爬取以下MM的图片,并将其按名保存在本地.要爬取的网站为: 大秀台模特网 1. 分析网站 进入官网后我们发现有很多分类: 而我们要爬取的模特中的女模内容,点进入之后其网址为:h ...

  5. Python多线程爬虫爬取网页图片

    临近期末考试,但是根本不想复习!啊啊啊啊啊啊啊!!!! 于是做了一个爬虫,网址为 https://yande.re,网页图片为动漫美图(图片带点颜色........宅男福利 github项目地址为:h ...

  6. erlang 爬虫——爬取网页图片

    说起爬虫,大家第一印象就是想到了python来做爬虫.其实,服务端语言好些都可以来实现这个东东. 在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌 ...

  7. python学习之爬虫(一) ——————爬取网易云歌词

    接触python也有一段时间了,一提到python,可能大部分pythoner都会想到爬虫,没错,今天我们的话题就是爬虫!作为一个小学生,关于爬虫其实本人也只是略懂,怀着"Done is b ...

  8. 简单又强大的pandas爬虫 利用pandas库的read_html()方法爬取网页表格型数据

    文章目录 一.简介 二.原理 三.爬取实战 实例1 实例2 一.简介 一般的爬虫套路无非是发送请求.获取响应.解析网页.提取数据.保存数据等步骤.构造请求主要用到requests库,定位提取数据用的比 ...

  9. python中两种方法实现二分法查找,细致分析二分法查找算法

    之前分析了好多排序算法,可难理解了呢!!(泣不成声)这次我要把二分查找总结一下,这个算法不算难度特别大,欢迎大家参考借鉴我不喜欢太官方的定义,太晦涩的语言,让人看了就头晕.我希望加入我自己的理解,能帮 ...

随机推荐

  1. 年年岁岁花相似,岁岁年年人不同。——linux课程初探

    写在前面 记得大约两年以前第一次学习linux,当初的目的还仅仅是学习操作系统,后来慢慢开始写linux内核代码,慢慢学会重构与代码的维护.在娄老师课上感觉这些工具是如此亲切和熟悉,没错这些曾经被我抛 ...

  2. CGLIB介绍与原理(通过继承的动态代理)

    一.什么是CGLIB? CGLIB是一个功能强大,高性能的代码生成包.它为没有实现接口的类提供代理,为JDK的动态代理提供了很好的补充.通常可以使用Java的动态代理创建代理,但当要代理的类没有实现接 ...

  3. Kernel-----EXPORT_SYMBOL使用

    EXPORT_SYMBOL只出现在2.6内核中,在2.4内核默认的非static 函数和变量都会自动 导入到kernel 空间的, 都不用EXPORT_SYMBOL() 做标记的. 2.6就必须用EX ...

  4. JVM 方法调用之解析

    方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还没有涉及到方法内部的具体运行过程.在程序运行时,进行方法调用是最普遍最频繁的操作,但Class文件 ...

  5. delphi中sql实现while循环插入,不存在则插入

    ' declare @i int; '+ ' set @i=0; '+ ' while @i<4 '+ ' begin '+ ' insert into NBCommission(Type,It ...

  6. java学习(四)static静态变量 和this

    java中的this /* this:是当前类的对象引用.简单的记,它就代表当前类的一个对象. 注意:谁调用这个方法,在该方法内部的this就代表谁. this的场景: 解决局部变量隐藏成员变量 */ ...

  7. Android-ListView-(BaseAdapter使用)

    在Android中就提供了专门列表显示条目的控件,ListView控件,ListView控件不是一次性加载全部数据,他是只加载用户在屏幕看得到的数据,当用户滑动的过程中在去加载新的数据,同时会自动销毁 ...

  8. android的样式(style)与主题(theme)

    Android上的Style分为了两个方面: 1,Theme是针对窗体级别的,改变窗体样式: 2,Style是针对窗体元素级别的,改变指定控件或者Layout的样式. Android系统的themes ...

  9. mysql 循环插入

    在mysql添加测试数据,想和mssql一样用循环实现,发现不管怎么样都执行失败 经查询发现mysql不支持匿名块,只能先创建出一个存储过程,执行,然后删除 CREATE PROCEDURE test ...

  10. 设置和获取html、文本和值

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...