python爬虫图片加速,如何让爬虫提速?多线程爬虫一秒50图了解一下

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

1d3d28e1262be693e58d1f69f7086111.png

基本开发环境

Python 3.6

Pycharm

import requests

import parsel

import threading

123

相关模块 pip 安装即可

目标网页分析

eb83f7bd2b103fca5deb1448cc75b6cd.png

这个网站有电脑壁纸也有手机壁纸,还是不错的。

e10cab52c09b31a0408e371f9954e79f.png

网站是静态网站,没有加密,可以直接爬取

b5f9aa9abf14a3226015232f9ec3af84.png

a8ad29c910385ec6f8fe5f344bc1c15b.png

整体思路

1、先在列表页面获取每张壁纸的详情地址

2、在壁纸详情页面获取壁纸真实高清url地址

3、保存壁纸

代码实现

模拟浏览器请求网页,获取网页数据

def get_html(html_url):

'''

获取网页源代码

:param html_url: 网页url

:return:

'''

response = requests.get(url=html_url, headers=headers)

return response

解析网页数据

def get_par(html_data):

'''

把 response.text 转换成 selector 对象 解析提取数据

:param html_data: response.text

:return: selector 对象

'''

selector = parsel.Selector(html_data)

return selector

保存数据

def download(img_url, title):

'''

保存数据

:param img_url: 图片地址

:param title: 图片标题

:return:

'''

content = get_html(img_url).content

path = '壁纸\\' + title + '.jpg'

with open(path, mode='wb') as f:

f.write(content)

print('正在保存', title)

主函数

def main(url):

'''

主函数

:param url: 列表页面 url

:return:

'''

html_data = get_html(url).text

selector = get_par(html_data)

lis = selector.css('.wb_listbox div dl dd a::attr(href)').getall()

for li in lis:

img_data = get_html(li).text

img_selector = get_par(img_data)

img_url = img_selector.css('.wb_showpic_main img::attr(src)').get()

title = img_selector.css('.wb_pictitle::text').get().strip()

download(img_url, title)

end_time = time.time() - s_time

print(end_time)

启动多线程运行代码

if __name__ == '__main__':

for page in range(1, 11):

url = 'http://www.deskbizhi.com/min/list-{}.html'.format(page)

main_thread = threading.Thread(target=main, args=(url,))

main_thread.start()

这里只选择爬取前10页的数据

96986eea28d1a2f8f139ce05efa501cd.png

8df6955a3ad8bd04a1bd0a2502d1f8e4.png

从运行截图和壁纸保存来看,5.5秒的时间,下载了215张图片,效率上面还是可以的,平均计算下来每秒钟下载40张图片。。。

可以自己去试试多线程爬取数据哈,效率还是非常高的

本文分享 CSDN - 松鼠爱吃饼干。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值