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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值