python如何爬取图片到指定文件夹论文_基于Python的图片爬虫程序设计
互联网中包含大量有价值的
数据,网络爬虫通过既定规则可
以自动地抓取互联网数据并下载
至本地存储。研究网络爬虫的工
作原理和基于
Python
网络信息爬
取技术模块功能,基于
Requests-
BeautifulSoup
技
术
构
建
图
片
爬
虫实现网页图片爬取,详细阐述
了
百
度
贴
吧
美
图
吧
图
片
爬
虫
程
序的采集、解析、爬取和存储过
程,实验结果证明基于
Python
的
Requests-BeautifulSoup
技
术
可
快速构建图片爬虫程序实现对网
页图片数据的自动解析和爬取,
程序简单有效并且数据采集速度
快。
摘
要
联网数据的程序或者脚本。网络爬虫通过网
络请求从
Web
网站首页或指定页面开始解析
网页获取所需内容
,
并通过网页中的链接地址
不断进入到下一个网页
,
直到遍历完这个网
站所有的网页或满足爬虫设定的停止条件为
止。
Python
语言第三方网络请求库
Requests
模拟浏览器自动发送
HTTP/HTTPS
请求并从
互联网获取数据。
BeautifulSoup
解析获取的
HTML/XML
页
面
为
用
户
抓
取
需
要
的
数
据,
Beautiful Soup
自动将输入文档转换为
Unicode
编码,将输出文档转换为
utf-8
编码,从而节
省编程时间。
1.1 网络爬虫的工作原理
网络爬虫爬取页面就是模拟使用浏览器
获取页面信息的过程,其爬取流程一般包含如
下
4
个步骤:
(
1
)
模
拟
浏
览
器
发
起
请
求:
通
过
目
标
URL
向服务器发起
request
请求,请求头
header
一般包含请求类型、
cookie
信息以及浏
览器类型信息等;
(
2
)获取服务器页面响应:在服务器正
常响应的情况下,用户会收到所请求网页的
response
,一般包含
HTML
、
Json
字符串或其
他二进制格式数据(如视频,图片)等;
(
3
)获取页面内容解析:用相应的解析
器或转换方法处理获取的网页内容,如用网页
解析器解析
HTML
代码,
如果是二进制数据
(如
视频、图片),则保存到文件进一步待处理;
(
4
)存储数据:网页解析获取的数据可
以用
CSV
、
Json
、
text
、图片等文件存储,也
可以
sqlite
、
MySQL
或者
MongoDB
等数据库
存储。
1.2 Python第三方库Requests模块
Requests
是
用
Python
语
言
编
写
,
使
用
Apache2 Licensed
许
可
证
的
HTTP
库。
Python
标准库中自带的
urllib2
模块和
httplib
模块提
供了所需要的大多数
HTTP
功能,
Requests
使
用
urllib3
模块,支持
HTTP
连接保持和连接
池,
支持使用
cookie
保持会话,
支持文件上传,
支持自动确定响应内容的编码,支持国际化的
URL
和
POST
数据自动编码。
通过
pip
命令(
$pip install requests
)安装
Requests
模块。
urllib
提供了一系列用于操作
URL
的功能,
urllib
的
request
模块可以方便地
访问抓取
URL(
统一资源定位符
)
内容,
urllib.
request
模块中常用的函数方法如表
1
所示。
使用
requests
方法后,会返回一个
response
对
象存储服务器响应的内容,
如
r.status_code
(响
应状态码)、
r.text
(字符串方式的响应体,
会自动根据响应头部的字符编码进行解码)、
r.json
(
Requests
中
内
置
的
JSON
解
码
器)、
r.content
(字节方式的响应体,会自动为你解
码
gzip
和
deflate
压缩)等。
1.3 Python第三方库Beautiful Soup模块
Beautiful Soup
是
用
Python
写
的
一
个
HTML/XML
的解析器,它可以处理不规范标
记并生成分析树
(parse tree)
,同时提供了简单
的
python
函数处理导航(
navigating
)、搜索
并修改分析树。
通
过
pip
命
令
安
装(
$ pip install
beautifulsoup4
)
Beautiful Soup
模
块。
BeautifulSoup
将
HTML
文档转换成一个树形
结构
,
每个节点都是
Python
的对象
,
所有对象
可归纳为
4
种,如表
2
所示。
2 帖吧图片爬虫程序设计
百度贴吧是全球最大的中文社区。贴吧
是一种基于关键词的主题交流社区,贴吧结合
搜索引擎建立一个在线的交流平台,让那些对
同一个话题感兴趣的人们聚集在一起,方便地
展开交流和互相帮助。设计爬虫程序爬取百度
帖吧(
http://tieba.baidu.com
)内的美图吧图片,
运行爬虫程序时提示用户输入想要爬取网站的
url
,爬虫程序修改请求头信息,模拟浏览器对
贴吧内的帖子依次使用
get
请求,进入帖子后
根据规则找到所有图片标签,获取帖子内的图
片资源
url
,并将其依次下载到本地存储
,
所有
帖子爬取完成后按
enter
退出,运行中途也可
以使用
ctrl+c
强制退出程序。
基
于
Python
的
Requests-BeautifulSoup
技
术构建图片爬虫程序,使用
requests
模拟浏览
器请求网页,用
random
生成随机数选取模拟
的浏览器,用
BeautifulSoup
支持的
Python
内
置标准
HTML
解析库解析请求网页返回的数
据,
使
用
urllib.request.urlretrieve( )
下
载
图
片
和各种网络请求。
2.1 爬虫准备
开
发
图
片
爬
虫
程
序
使
用
Python3.6
版
本,
主
要
用
到
了
urllib
的
requests
模
块、
BeautifulSoup
模块和
random
模块,模块是包
含变量、函数或类的定义程序文件,使用模块
前通过
import
导入这些模块。定义了两个全
局变量
null
和
true
并初始化,以避免当访问网
址
url
中出现
null
和
true
字样时,
Python
会将
null
和
true
当成变量未初始化而报错。
import urllib.request
from bs4 import BeautifulSoup
import random
global null #
设置了两个全局变量
null
和
true
并初始化
null=''
global true
python如何爬取图片到指定文件夹论文_基于Python的图片爬虫程序设计相关推荐
- AWS S3 Windows系统下的文件夹上传基于python
AWS S3 上传文件,基于cmd命令行发现无法上传文件夹,只能上传单个文件,不知道是我能力不行还是什么原因,如果有大佬了解的可以在下面评论下! 一.环境配置 1.win10 X64: 2.awscl ...
- pycharm 怎么快速生成文件夹结构_为什么Python代码能运行但是PyCharm给我画红线?...
PyCharm在遇到模块找不到时,会使用红色波浪线提醒开发者.这本来是一个非常好的功能,但却由于另外一个问题,会给一些Python初学者造成困扰. 这一篇文章,我们讲讲工作区导致的这个问题. 首先我们 ...
- sudo修改文件夹名字_用 Python 高效智能管理文件夹
#「闪光时刻」主题征文 二期# 大家在写报告.写总结时,是否会先去翻一下以前写过的类似的东西?是否有看过比较好的文章,想保存时却为归类而纠结?是否电脑里的文件越来越多,想删掉一些却又舍不得?身处大数据 ...
- matlab添加文件夹语音_基于MATLAB的语音处理
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 基于MATLAB的语音滤波实验 实验目的: 1.在Matlab环境下对语音的频谱进行处理(数字滤波)并试听效果: 2.在Matlab环境 ...
- python关于二手房的课程论文_基于python爬取链家二手房信息代码示例
基本环境配置 python 3.6 pycharm requests parsel time 相关模块pip安装即可 确定目标网页数据 哦豁,这个价格..................看到都觉得脑阔 ...
- 基于python的股票程序化交易论文_基于Python工具的股票量化投资策略研究
2019 年第 07 期 20 世 纪 80 年代, 一 些 投 资 者 开 始 利用 计 算 机 研究金 融 数据 , 并 初显 成 效 . 20 世 纪 末 , 投 资 者 把 计 算 机 技术 ...
- python数字识别kaggle论文_基于Python语言Kaggle的数据集分析
界 基于 Python 语言 Kaggle 的数 据集 分析 段 聪 聪 柴 世 一 * 渊 河 南 大 学 计 算 机 与 信 息 工 程 学 院 袁 河 南 开 封 475004 冤 揖 摘 要 ...
- 基于python的小论文_基于Python的网上论坛的实现
摘要随着科学技术与计算机网络应用的发展,人们的生活与工作越来越智能化,简洁化,网络化.也就可以腾出更多的时间用来思考周围的事情的合理化与有效话,人们也就更加的想要追求事物的公平公正.在相互讨论与理解的 ...
- python动图转换成字符画动图_基于Python实现图画转换字符画
微信改版,加星标不迷路! 基于Python实现图画转换字符画 作者:阿广 概述 前言 准备工作 识别原理 静态图像处理 动态图像处理 结果 阿广说 群聊交流 福利一刻 推荐阅读 前言 前几天写了基于P ...
最新文章
- 19.Linux_Jni多线程操作
- 第十五届全国大学生智能车竞赛线上竞赛方案(草案)
- 简书markdown支持html,简书上使用Markdown(超详细)
- python中的self含义及使用方法
- 算法竞赛中的输入输出框架
- [课程相关]homework-03
- 万物皆可Graph | 当推荐系统遇上图神经网络(三)
- 异步 HttpContext.Current 为空null 另一种解决方法
- sir模型初始值_SIR 模型笔记
- linux usb 从芯片,新人求教,怎么烧录Linux系统到一个小芯片上?
- VMware Workstation 与 Device/Credential Guard 不兼容.在禁用 Device/Credenti
- php下一页的代码,php 下一页的代码
- android edittext禁止输入特殊字符,Android edittext 禁止输入特殊字符/或者表情符的方案...
- 如何用自己的电脑作为服务器搭一个网站
- ubuntu卸载程序
- 【阿里云·云原生架构·白皮书】保姆级解读 一、 云原生架构定义
- 搜狗输入法模糊音设置 (非自定义短语设置)
- 【Spring之轨迹】结合 @Scheduled 实现定时将 Redis 缓存刷入数据库(配 Redis 工具类与例子实战)
- PIC16F877A与Proteus仿真-PIC16F877A最小系统及开发环境搭建
- CVPR 2019 论文解读 | 基于多级神经纹理迁移的图像超分辨方法 (Adobe Research)