python函数的用法字帖_Python 3 爬虫之批量下载字帖图片

朋友想下载这62个网页中的字帖图片:http://www.yac8.com/news/11003.html

一、要点

1. Chrome 「审查元素」中看到的源代码与真实的源码不同。

2. 图片网址附近源码:

33b0feb3dadf73bb593228c5e03d0be4.png获取源码的正则表达式:

1305281456028815360.htm]*?src="(.+?\.jpg)"[^>]*?>建议使用Expresso,带有语义分析功能

3. 网页编码是GB2312:

4. 第一页的网址是/11003.html,后面第X页的网址是11003_x.html

二、代码

注意这里用的是Python 3

import urllib.request

import re

import time

# 作为保存的图片文件名

index = 1

# 获取网页源码

def getHtml(url):

page = urllib.request.urlopen(url) # 打开一个URL地址

html = page.read().decode('gb2312') # 读取URL上的数据

return html

# 网页中的图片网址:

#

33b0feb3dadf73bb593228c5e03d0be4.png

def getImg(html):

re_image_url = r'

1305281456028815360.htm]*?src="(.+?\.jpg)"[^>]*?>'

img_url_list = re_image_url.findall(html)

global index

for img_url in img_url_list:

# 将远程数据下载到本地

urllib.request.urlretrieve(img_url,save_path + r'\%s.jpg' % index)

index += 1

origin_url_head = r'http://www.yac8.com/news/11003'

origin_url_tail = r'.html'

save_path = r'F:\python_results'

time1= time.time()

getImg(getHtml(origin_url_head + origin_url_tail))

for x in range(2,63):

getImg(getHtml(origin_url_head + '_%s' % x + origin_url_tail))

time2= time.time()

print('下载完成!一共下载了 %s 个文件,用时 %s 秒' % (index, time2-time1))最终结果:

下载完成!一共下载了 186 个文件,用时 98.609375 秒

三、思考

仍然存在一些问题,比如下载中途出错怎么办?应该添加try except保存错误信息,下载完成后再重试。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值