您的位置:首页 > 编程语言 > Python开发

【python实验报告】用urllib来爬取网站页面中的图片和视频

2017-04-02 23:03 274 查看
在python中,有很多方法都可以实现网站页面中的图片和视频的爬取,urllib是其中的一种。

爬取图片

一. 实验目的

熟悉用urllib爬取图片的用法

二. 实验环境

python3.6、urllib包、re包

三. 实验步骤

import urllib
import urllib.request
import re
import time

url = "http://tu.duowan.com/m/meinv"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36'} #模拟浏览器访问
#1.根据URL获取页面源码
request = urllib.request.Request(url, headers=headers)
response = urllib.request.urlopen(request)
html = response.read().decode('utf-8')

#2.通过正则表达式匹配出页面中符合要求的图片地址
pattern = re.compile(r'http://[\S]*\.jpg') #当前只匹配jpg格式的图片
lists = re.findall(pattern, html)

#3.根据图片地址下载图片到本地目录
print("图片下载开始!")
num = 1
for item in lists:
urllib.request.urlretrieve(item, 'pic/' + str(num) + '.jpg') #pic目录需要预先建好,否则会报错
print("正在下载第%s张图片"%num)
if num == 12: # 只下载12张图片
break
time.sleep(1) #为了防止请求过快
num += 1
print("图片下载结束!")


四. 实验结果

实验结果

五. 实验总结

用urllib来爬取网站中的图片很简单,主要分为3步:

1. 根据URL获取页面源码

2. 通过正则表达式匹配出页面中符合要求的图片地址

3. 根据图片地址下载图片到本地目录

本例中还有很多需要完善的地方,比如:异常处理、用os库新建本地文件夹、匹配所有类型的图片、代码如何改成面向对象等。

视频的爬取方法跟图片完全一样,只是扩展名不同。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python