专栏首页数据挖掘bing背景图下载-python3的grequests测试

bing背景图下载-python3的grequests测试

 1 # !usr/bin/python3.4
 2 # -*- coding:utf-8 -*-
 3 
 4 import json
 5 import grequests
 6 import requests
 7 import re
 8 import time
 9 
10 def geturl(urls):
11 
12     sn = requests.Session()
13     rs = [grequests.get(url, session=sn) for url in urls]
14 
15     return grequests.map(rs)
16 
17 def get(url):
18 
19     header = {'User-Agent':
20                 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0',
21                 'Referer':'http://cn.bing.com',
22                 'Host': 'cn.bing.com'}
23 
24     # 解析网页
25     html_bytes = requests.get(url, headers=header)
26     return html_bytes
27 
28 # 去除标题中的非法字符 (Windows)
29 def validateTitle(title):
30     # '/\:*?"<>|'
31     rstr = r"[\/\\\:\*\?\"\<\>\|]"
32     new_title = re.sub(rstr, "", title)
33     return new_title
34 
35 if __name__ == '__main__':
36     i = 0
37     img = []
38     imgname = []
39     while True:
40         url = 'http://cn.bing.com/HPImageArchive.aspx?format=js&idx=' + str(i) + '&n=1'
41 
42         contents =get(url)
43         data = contents.content.decode('utf-8', 'ignore')
44         data = json.loads(data)
45         try:
46             onefile = data['images']
47             for item in onefile:
48                 img.append(item['url'])
49                 imgname.append(item['copyright'].replace(' ', ''))
50                 print(img[i])
51             i = i + 1
52         except Exception as err:
53             print(err)
54             break
55 
56     print('已经搜集好网址...')
57     print('暂停3秒后开始批量下载图片,请保持网络畅通...')
58     time.sleep(3)
59     print('正在下载...')
60     pics = geturl(img)
61 
62     j = 0
63     for pic in pics:
64         filenamep = '../jpg/' + validateTitle(imgname[j] + '.jpg')
65         filess = open(filenamep, 'wb')
66         filess.write(pic.content)
67         filess.close()
68         print('已经写入第' + str(j + 1) + '张图片')
69         j = j + 1

发现bing搜索的背景图非常好看:

所以写了个代码把他全部下载下来总的来说grequests非常好用

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

推荐阅读

  • 如何将设计思维应用到精益初创公司的软件开发

    我们所说的设计思维,是指由 IDEO 公司的 Tim Brown 提出,并且正在改变全世界组织的设计思维,简称 DT。(译者注:IDDO,当代最具影响力的设计公司之一)

    Aceyclee
    Serverless无服务器云函数
  • InnoDB 事务加锁分析

    一般大家对数据库事务的了解可能停留在事务的ACID特性以及事务4种不同的隔离级别层面上,而对于事务 4 种不同隔离级别如何实现了解相对较少。

    2020labs小助手
    MySQLSQL数据库MVCMVCC
  • FutureTask 核心源码解析

    研究源码,一般我们都从整体以及实例先入手,再研究细节,不至于一开始就“深陷其中而"当局者迷".

    JavaEdge
    HTTPJava
  • 200行代码落地人脸识别开锁应用

    2019年国庆,帮朋友实现了一个人脸识别进行开锁的功能,用在他的真人实景游戏业务中。几个月来运行稳定,体验良好,借着这个春节宅家的时间,整理一下这个应用的实现过程。

    高树磊
    人脸识别图像处理
  • 滑动验证码攻防对抗

        在业务安全领域,滑动验证码已经是国内继,传统字符型验证码之后的标配。众所周知,打码平台和机器学习这两种绕过验证码的方式,已经是攻击者很主流的思路,不再阐述。冷渗透介绍的是一个冷门的绕过思路和防御方案。这些积累,均来自于实战之中,希望有用。

    周俊辉
    HTTP网络安全安全网站
  • 程序员进阶必读,万字总结Mysql优化精华篇

    price decimal(8,2)有2位小数的定点数,定点数支持很大的数(甚至是超过int,bigint存储范围的数)

    程序员内点事
    全文检索缓存SQL数据库Python
  • 运维转型 | 运维人不再只是“救火英雄”

    各行各业都开启了数字化转型的进程,运维团队在这种时代的浪潮中又该何去何从?我在帮助一些企业落地了运维技术平台之后,开始反思这个问题,并将所思所想整理成本篇文章。

    嘉为科技
    企业运维自动化云计算
  • WEB开发常见的安全漏洞和解决思路

    SQL注入时web开发中最常见也是危害性最大的安全漏洞,SQL注入攻击可能会导致 服务器故障,数据泄漏,数据被恶意删除等等严重后果。

    windwei
    SQLHTTPhttps安全漏洞PHP
  • 详解Winograd变换矩阵生成原理

    文本首发知乎:https://zhuanlan.zhihu.com/p/87516875

    Ldpe2G
    编程算法
  • Linux网络性能优化相关策略

    1. rx-checksumming:校验接收报文的checksum。

    glinuxer
    Linux

扫码关注云+社区

领取腾讯云代金券