pyspider 爬取bing壁纸

news/2024/11/18 2:55:24/

附pyspider安装过程

目标页面 https://bing.gifposter.com/list/new/desc/classic.html?p=1

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Created on 2020-05-13 09:56:10
# Project: bingfrom pyspider.libs.base_handler import *
from time import strftime, strptime
import pymysqlclass Handler(BaseHandler):crawl_config = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36",}mysql_cli = pymysql.Connect('127.0.0.1','root','mypasswd','bing',3306,charset='utf8')cursor = mysql_cli.cursor()# 每天执行一次on_start@every(minutes=24 * 60)def on_start(self):self.crawl('https://bing.gifposter.com/list/new/desc/classic.html?p=1', callback=self.index_page)# 十天之内不重复爬取@config(age=10 * 24 * 60 * 60)def index_page(self, response):# 抓取下一页for each in response.doc('a.page-btn').items():if each.text() == ">" and each.attr.href != 'javascript:void(0)':self.crawl(each.attr.href, callback=self.index_page)# 保存壁纸内容content_list = []for each in response.doc('.imglist li').items():content = {}content['title'] = each('span').text()base_url = each('img').attr.src  # 提取img的src属性# 只保留关键部分,使用时拼接 https://www.bing.com/th?id=OHR.{base_url}_1920x1080.jpg# 20180606之前的bing已删除content['base_url'] = base_url.split('/')[-1].split('_1920x1080.jpg_sm')[0]# 格式转换  'May 13, 2020' --> '20200513'date = each('time').text()content['date'] = strftime('%Y%m%d', strptime(date, '%b %d, %Y'))content_list.append(content)return content_list# return的结果转交给on_resultdef on_result(self, result):# 数据持久化if result:for content in result:try:sql = "INSERT INTO bing(%s) VALUES(%s)" % \(','.join(content.keys()), ','.join(['%s']*len(content)))self.cursor.execute(sql, list(content.values()))self.mysql_cli.commit()print('数据存储成功')except Exception as e:self.mysql_cli.rollback()

http://www.ppmy.cn/news/687884.html

相关文章

获取bing壁纸php,php获取bing每日壁纸的示例

php获取bing每日壁纸的示例 这篇文章主要介绍了使用php获取bing每日壁纸的示例,需要的朋友可以参考下 代码如下: $strfile_get_contents(http://cn.bing.com/HPImageArchive.aspx?idx0&n1); if(preg_match("/(.?)/ies",$str,$matches)){ $imgurlhttp://cn.bing…

动态获取Bing每日壁纸

我们可以通过访问:http://cn.bing.com/HPImageArchive.aspx?formatxml&idx0&n1获得一个XML文件,里面包含了图片的地址。 上面访问参数的含义分别是: 1、format,非必要。返回结果的格式,不存在或者等于xml时…

Python爬虫实战(2):自定义年月日国别抓取Bing壁纸

写完程序的最深体会。 就是大概我python水平可能也就停留在这半死不活,写几十行都要各种翻资料的状态上了吧。 令人悲伤。 言归正传,代码地址。 Bing壁纸有API接口,也有不同网站提供浏览服务,其中本例使用的是Long Zheng老师的…

随机切换必应美图html代码,Python之自动爬取每日bing壁纸并更换

[PHP] 纯文本查看 复制代码Microsoft Windows [版本 10.0.17134.1304] (c) 2018 Microsoft Corporation。保留所有权利。 (venv) D:\Pycharm 2020.3>pyinstaller -D photo_get.py 1465 INFO: PyInstaller: 4.2 1465 INFO: Python: 3.8.3 1465 INFO: Platform: Windows-10-10…

bing每日壁纸客户端

写了个bing每日壁纸的安卓客户端。可以查看历史壁纸,相关讯息,设置壁纸,下载壁纸。 代码已开源到github ,欢迎start github地址 网页版在这 www.rampage.xin/bing/

官方bing壁纸软件-bing wallpaper

更新内容:官方bing壁纸软件-bing wallpaper 官方发布了一款bing壁纸软件:bing wallpaper 下载安装中会有两个选项:将bing设为首页和将bing设为默认搜索。根据个人打勾或取消。软件是英文版的,不能设置中文。 功能很简单&#xff1…

bing壁纸获取(Java)

获取bing壁纸 接口及实现 简单的demo,将所有的方法都复制到一个Controller里面了。 /img/url (通过流的方式,可以直接读取到图片) /img/info (返回图片的信息以json的形式,采用异步非阻塞的方式执行代码) import com.alibaba.fastjson.JSON; import com.alibaba.fastjso…

微软 bing 壁纸 每日一图 bing api

作者提供了一个在线的壁纸服务地址如下: http://47.111.254.61:8000/bingWpget请求或者粘贴到浏览器就可以获取最新的bing壁纸。谢谢。 如果地址不能使用了,请联系qq 1072469391开源地址:GitHub007Dra/bingWallpaper: 每天一张壁纸 bing 免费…