附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()

pyspider 爬取bing壁纸相关推荐

  1. Python爬虫——爬取Bing壁纸

    个人作为获取壁纸的小脚本 所以添加了random模块,壁纸以日期命名,每天随机领取一张新壁纸 使用requests库爬取,re正则提取数据 使用PIL库 将下载的壁纸自动展示 # -*- coding ...

  2. 【Python爬虫学习实践】多线程爬取Bing每日壁纸

    在本节实践中,我们将借助Python多线程编程并采用生产者消费者模式来编写爬取Bing每日壁纸的爬虫.在正式编程前,我们还是一样地先来分析一下我们的需求及大体实现的过程. 总体设计预览 首先,我们先来 ...

  3. 利用Python爬取必应壁纸

    前言 一个喜欢折腾的人,长期看到桌面只有一种壁纸,就想着自己从网上爬取一些壁纸,存下来,随机切换壁纸. 本文仅供学习交流. 工具 Python3 + requests + re Fiddler 抓包工 ...

  4. python爬取桌面壁纸(初学者),一看就会

    今天想给我的电脑里面多加点壁纸,但是嫌弃一个个保存太慢,于是想着写个爬虫直接批量爬取,正好我也刚刚学完爬虫. 我们要爬取一个壁纸网站 http://www.netbian.com/weimei/ind ...

  5. 【python爬虫】爬取Bing词典的单词存到SQLite数据库

    爬取Bing词典的单词 打算做一个单词相关的app自己用,那词典从何而来呢? 想到了用爬虫.爬哪里的数据呢? 个人比较喜欢微软的东西,所以打算从Bing翻译爬取单词 Bug 由于Bing翻译的html ...

  6. 【python爬虫】爬取Bing词典的单词存到SQLite数据库(加了pyqt5界面显示)

    之前一篇博客的连接: [python爬虫]爬取Bing词典的单词存到SQLite数据库 相比之前这篇文章中的源码,这次带UI的代码不仅改进了UI界面,爬虫部分的代码也有改进. 展示 代码github ...

  7. Python爬取wallhaven壁纸 2023.1.31

    Python爬取wallhaven壁纸 壁纸页面 前言 源码 壁纸页面 前言 学习中,未加多线程,由于网站.图片大小等因素导致下载缓慢 望各位大神提出建议并加以修善 网站主页及其爬取页如下,可自行修改 ...

  8. 用Python爬取手机壁纸,太简单了吧

    用Python爬取手机壁纸,太简单了吧! 人生苦短,快学Python! 在Python爬虫的学习过程中,爬取图片几乎是每个初学者都练习过的项目,比如我们之前就分享过:如何用Python快速爬取小姐姐的 ...

  9. Python【爬虫实战】爬取美女壁纸资源

    Python[爬虫实战]爬取美女壁纸资源 一:首先选取一个网站,这里我们选择了一个壁纸网站 二:进入网站,我们可以看到很多图片放在一页里 三:按下F12开发者工具,点击Elments查看网页的代码 四 ...

最新文章

  1. 算法设计与分析第4章 动态规划(二)【DP序列问题】
  2. 特斯拉车主「作死」成真:炫耀「主驾无人」,自动驾驶导致车毁人亡
  3. xx is not in the sudoers file 问题解决
  4. Spring MVC -- 国际化
  5. eos操作系统_EOS基础全家桶(十一)智能合约IDE-EOS_Studio
  6. MySQL 高级 - 输入参数
  7. CMDB学习之三数据采集
  8. eclipse 下使用git clone
  9. [导入]一再的变故,终于决定何去何从.
  10. error C2065: 'ULONG_PTR' : undeclared identifier
  11. 解析markdown_markdown-it 原理浅析
  12. java基础知识点(4)——运算符与键盘录入
  13. 机器学习的训练数据(Training Dataset)、测试数据(Testing Dataset)和验证数据(Validation Dataset)
  14. 实现option上下移动_jQuery操作Select的Option上下移动及移除添加等等
  15. matlab 向量转置,matlab中向量和矩阵怎么转置 值得收藏
  16. ArduPilot简介
  17. mybatisplus删除操作引起的selectBatchIds报错
  18. 虚拟机几种联网的方式,如何共享主机IP
  19. SuperCollider学习笔记(一)- 振荡器(Oscillators)
  20. LeetCode1219 黄金矿工

热门文章

  1. 创造娱乐性:阐述编写游戏对话的8点经验
  2. 利用老路由器来简单监控3D打印机
  3. 221. k8s_v1.15addons插件部署
  4. text pad java_错误:无法在Textpad 8中找到或加载主类
  5. oushuDB之oracle兼容函数orafunc
  6. loj #6046. 「雅礼集训 2017 Day8」爷
  7. 阿里的天蝎计划-迟到了N多年的 SI
  8. Executors 源码解析(JDK8)
  9. Parsing error: No Babel config file detected for xxx Either disable config file checking with requir
  10. java毕业设计大学生创业众筹系统mybatis+源码+调试部署+系统+数据库+lw