决战高考,帮你秒变成语之王

保姆级教程:用Docker快速部署mpromonet/webrtc-streamer实现WebRTC直播(附常见问题解决) 本文提供了一份详细的Docker部署mpromonet/webrtc-streamer的实战指南,帮助用户快速搭建WebRTC直播服务。内容涵盖从环境准备、基础部署到进阶配置与性能调优的全过程,并针对容器网络、视频流配置、跨网访问等常见问题提供了解决方案,旨在实现低延迟的流媒体传输。 阅读详情
又是一年高考季

每年的这时候我都要发一条朋友圈,要高考了好紧张,哈哈…
没开始做公众号时,在公司内网隔三差五发篇博文,感觉自己思维好活跃。可从上周五写第一篇公众号开始,说巧不巧的工作开始忙起来了。每天赶着最后一班车回家,吃完饭和孩子玩一会就快10点了。然后坐在电脑旁边稳定半天的情绪开始学习,等学的差不多开始搞公众号。这一周1天通宵5天3点后,感觉身体被掏空。但希望能坚持每天发一篇真的能给大家带来帮助的文章,那么今天发什么?如题…

成语之王

想想今天高考,第一门就是语文,所以考虑发一篇和语文有关的内容。
回忆我们那会儿考语文,第一道题肯定和成语、拼音的判断对错和修改有关。那就发这个吧!
百度了一下,找到一个haoshiwen.org的网站,对应的有一个chengyu.haoshiwen.org子域名。其中包含了很多的成语,点到每个成语中,又包含了成语、注音、释义、出处、示例、成语热度,很是不错。

网站分析

坦白说,这个网站真的比较简单,就是PHP(世界上最好的语言…)搭建的静态网站。
网站将成语通拼音首字母从A-Z进行了划分,然后每个字母一页一页的记录,网址模式如下:
http://chengyu.haoshiwen.org/list.php?t=A&page=2
成语首页.png

每个成语的链接点进去就是成语详情,url类似如下:
http://chengyu.haoshiwen.org/view.php?id=40
成语详情.png

这样解析起来就很简单了…

  1. 我们首先创建双重for循环,character从A到Z、page 1–100,然后开始爬取网站
  2. 通过正则匹配所有href属性带有/view.php?id=数字的a标签进行网站拼接后的二次访问
  3. 进入访问页面,获取第一个table中的成语名、注音、释义、出处、示例、成语热度
  4. 成语热度的排名,进行字符串的切割后,转为int,已做成语热度排序
  5. 最终将数据进行存储
	... 部分代码 ...
    def traverse_character(self):
        # page style: http://chengyu.haoshiwen.org/list.php?t=A&page=1
        url = self.url + '/list.php'
        for char in ascii_uppercase:
            for page_num in range(1, 100):
                params = {"t": char, "page": page_num}
                soup = self.get_response(url, params)
                links = soup.findAll("a", {"href": re.compile("/view.php\?id=\d")})
                if not links:
                    continue
                for link in links:
                    t = threading.Thread(target=self.idiom_index, args=(self.url + link["href"],))
                    t.start()
                    time.sleep(0.1)

    def idiom_index(self, url):
        sem.acquire()
        try:
            soup = self.get_response(url)
            tr = soup.find("table").findAll("tr")[:6]
            info = {td.findAll('td')[0].text: td.findAll('td')[1].text for td in tr}
            info['人气'] = int(info['人气'][:-1])
            sql = "insert into idiom (name,speak,meaning,source,example,hot) values " \
                  "(?,?,?,?,?,?)"

            self.db.insert(sql,list(info.values()))
        except Exception as error_info:
            print(error_info)
        finally:
            sem.release()
    ... 部分代码 ...
怎么存?

其实这种数据,用postgresql和mongodb亦或者是大众常用的Mysql来搞是比较好的。但其实这里有一个小打算,就是把数据全部拿到之后做一个其他的功能,为了能轻松复制,我选择了相对性能弱但是便携的SQLite。
那选择了数据库,用什么来管理数据库链接呢? DBUtils

安装:pip install DBUtils
介绍:

DBUtils is a suite of tools providing solid, persistent and pooled connections to a database that can be used in all kinds of multi-threaded environments like Webware for Python or other web application servers. The suite supports DB-API 2 compliant database interfaces and the classic PyGreSQL interface.

简而言之,DBUtils是一套为数据库提供可靠,持久和池式连接的工具,可用于各种多线程环境。我们一般使用DBUtils.PooledDB来创建一批连接池进行并发处理。常用参数如下:

参数说明
creator使用链接数据库的模块(sqllite3、pymysql…)
maxconnections连接池允许的最大连接数,0和None表示不限制连接数
mincached初始化时,链接池中至少创建的空闲的链接,0表示不创建
maxcached链接池中最多闲置的链接,0和None不限制
blocking连接池中如果没有可用连接后,是否阻塞等待。True,等待;False,不等待然后报错
maxusage一个链接最多被重复使用的次数,None表示无限制
hostip
user用户名
password密码
database数据库名
charset字符集(Mysql用的比较多,SQLite没有)

因为之前都是拿DBUtils链接数据库的,这次默认就直接改成sqlite3,结果各种报错(SQLite数据库没有host、user、password、charset的选项)。
然后好不容易配置好了,封装上常用的方法…一跑程序挂了!
SQLite本身应对多个线程并发访问过程中的冲突问题,由一个线程创建并访问的sqlite的数据库,无法允许另外一个线程进行访问,找解决办法呗,最终找到通过设置check_same_thread=False,使SQLite支持多线程并发(但并发的效果很一般)。

# -*- coding: utf-8 -*-
# @Author   : 王翔
# @JianShu  : 清风Python
# @Date     : 2019/6/7 02:23
# @Software : PyCharm
# @version  :Python 3.6.8
# @File     : db_maker.py


import sqlite3
from DBUtils.PooledDB import PooledDB


class DB_Maker:
    def __init__(self):
        self.POOL = PooledDB(
            check_same_thread=False,
            creator=sqlite3,  # 使用链接数据库的模块
            maxconnections=10,  
            mincached=2,  
            maxcached=5,  
            blocking=True,  
            maxusage=None,  
            ping=0,
            database='database.db',
        )
        self.check_db()

    def check_db(self):
        sql = "SELECT name FROM sqlite_master where name=?"
        if not self.fetch_one(sql, ('idiom',)):
            self.create_table()

    def create_table(self):
        print("create table ...")
        sql = """create table idiom (
                        [id]            integer PRIMARY KEY autoincrement,
                        [name]         varchar (10),
                        [speak]      varchar (30),
                        [meaning]      varchar (100),
                        [source]      varchar (100),
                        [example]      varchar (100),
                        [hot]      int(10)
                    )"""
        self.fetch_one(sql)

    def db_conn(self):
        conn = self.POOL.connection()
        cursor = conn.cursor()
        return conn, cursor

    @staticmethod
    def db_close(conn, cursor):
        cursor.close()
        conn.close()

    def fetch_one(self, sql, args=None):
        conn, cursor = self.db_conn
        if not args:
            cursor.execute(sql)
        else:
            cursor.execute(sql, args)
        record = cursor.fetchone()
        self.db_close(conn, cursor)
        return record

    def fetch_all(self, sql, args):
        conn, cursor = self.db_conn
        cursor.execute(sql, args)
        record_list = cursor.fetchall()
        self.db_close(conn, cursor)
        return record_list

    def insert(self, sql, args):
        conn, cursor = self.db_conn
        row = cursor.execute(sql, args)
        conn.commit()
        self.db_close(conn, cursor)

程序引入threading多进程的方式,并发网页请求。主程序代码如下:

# -*- coding: utf-8 -*-
# @Author   : 王翔
# @JianShu  : 清风Python
# @Date     : 2019/6/7 02:52
# @Software : PyCharm
# @version  :Python 3.6.8
# @File     : IdiomCrawler.py

import requests
from bs4 import BeautifulSoup
import re
import threading
import time
from string import ascii_uppercase
from db_maker import DB_Maker


class IdiomCrawler:
    def __init__(self):
        self.url = "http://chengyu.haoshiwen.org"
        self.headers = {
            'Host': "chengyu.haoshiwen.org",
            'Connection': 'keep-alive',
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
            'user-agent': ('Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 '
                           '(KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36')
        }
        self.db=DB_Maker()

    def get_response(self, url, params=None):
        r = requests.get(url, headers=self.headers, params=params)
        r.encoding = 'utf-8'
        soup = BeautifulSoup(r.text, "lxml")
        return soup

    def traverse_character(self):
        # page style: http://chengyu.haoshiwen.org/list.php?t=A&page=1
        url = self.url + '/list.php'
        for char in ascii_uppercase:
            for page_num in range(1, 100):
                params = {"t": char, "page": page_num}
                soup = self.get_response(url, params)
                links = soup.findAll("a", {"href": re.compile("/view.php\?id=\d")})
                if not links:
                    continue
                for link in links:
                    t = threading.Thread(target=self.idiom_index, args=(self.url + link["href"],))
                    t.start()
                    time.sleep(0.1)

    def idiom_index(self, url):
        sem.acquire()
        try:
            soup = self.get_response(url)
            tr = soup.find("table").findAll("tr")[:6]
            info = {td.findAll('td')[0].text: td.findAll('td')[1].text for td in tr}
            info['人气'] = int(info['人气'][:-1])
            sql = "insert into idiom (name,speak,meaning,source,example,hot) values " \
                  "(?,?,?,?,?,?)"

            self.db.insert(sql,list(info.values()))
        except Exception as error_info:
            print(error_info)
        finally:
            sem.release()


if __name__ == '__main__':
    sem = threading.Semaphore(5)  # 设置线程阀值
    Crawler = IdiomCrawler()
    Crawler.traverse_character()
    while threading.active_count() != 1:
        pass  # print threading.active_count()
    else:
        print('### Selenium Jobs is over!!!###')

不爬不知道一爬吓一跳,中国有这么多的成语,看了几集Flask视频了,才终于搞完。
来看看我们的数据吧…
成语总数.png
检查下有没有重复数据,结果ok:
成语筛选.png
再来看看网站排名的成语热度吧:
网站成语热度.png
这个热度就有点坑了,明显是访问次数么,因为这个哀哀父母是第一个词,所以热搜最高。最重要的是我不知道这是啥意思,哈哈…

辛辛苦苦把三万个成语爬下来,就这么结束了貌似不太好,抽时间拿这些数据搞点事情。
如果大家想要这份成语数据库,关注我的公众号【清风Python】,回复**成语**,即可获取。
好了,今天的内容就到这里,如果觉得有帮助,记得点赞支持。欢迎大家关注我的公众号,获取更多Python相关的知识,并有整理好的各类福利数据供大家下载:
清风Python

Win11下Python脚本不执行?5分钟搞定PATH环境变量配置(VSCode终端实测) 本文针对Win11系统下VSCode终端中Python脚本执行无响应的问题,提供了详细的诊断与解决方案。核心在于正确配置PATH环境变量,通过图形化界面调整Python路径优先级,并分享了VSCode终端环境变量的刷新技巧,帮助开发者在5分钟内快速解决环境配置难题。 阅读详情

相关推荐

Wireshark 4.6 TCP 流图解析:3种拥塞控制算法可视化对比

本文深入解析Wireshark 4.6的TCP流图功能,通过可视化对比Reno、Cubic和BBR三种主流拥塞控制算法的性能特征。文章提供详细的实验环境搭建方法、流图分析工具使用技巧,以及算法调优建议,帮助网络工程师优化TCP性能。

weixin_29291573的博客 446

sqlite check_same_thread

python sqlite3模块使用 sqlite3.connect(filename, check_same_thread=False) 1. check_same_thread=False的作用: python sqlite3的线程模式默认串行, 如果需要再多线程中用一个句柄,需要加此参数,否则将出现如下错误: sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in that same thr

非-浪的博客 3867

madgwick算法基于MPU9250姿态融合漂移问题的原因

基于MPU9250的madgwick算法姿态漂移问题原因 0、声明 因为这个是现象是不是共性目前本人还没研究过,只是在个体问题研究的基础上得出的结论,或许我买到的MPU9250是一个盗版:),所以只具备参考性。 1、现象 使用MPU9250的加速度计、角速度计、磁力计(AK8963)原始数据输入到madgwick算法中,得到的姿态最终会在停止姿态变化后仍然漂移一小段时间。其中加速度计和角速度计读取速率为400hz,磁力计为100hz,加速度计采样范围±2g,角速度计采样范...

GreedyZombie的博客 3872

flask使用sqlite数据库的连接

Flask web开发一书中,按照书上的代码一开始可以运行,但是在shell中进行数据库的修改,插入与删除时,在提交会话的时候会出现提示多线程的问题,这个问题的解决是在配置数据时便在原来的URI中加上?check_same_thread=False这句话,就可以了。 完整代码如下: #数据库申明 basedir = os.path.abspath(os.path.dirname(__file...

NULL 3383

脑机接口(BCI)从原理到开发实战 10|脑控外设:用脑电波控制机械臂/游戏

摘要: 脑机接口(BCI)的“最后一公里”是将分类结果转化为实际动作的关键环节。本文介绍如何通过指令映射、硬件通信和执行反馈实现脑控外设,包括离散/连续控制策略、防抖处理及串口/蓝牙通信方法。通过两个实战案例(运动想象控制机械臂抓取、P300/SSVEP控制游戏)和完整项目(OpenBCI控制小车),演示了从分类标签到设备动作的完整流程,重点涵盖指令生成算法(多数投票)、Python与Arduino的串口通信集成,为BCI系统落地提供实用解决方案。(149字)

小明的博客 766

RTKLIB PPP与RTK_POST精密定位实战:从实时到事后处理的完整流程解析

本文详细解析了如何使用RTKLIB进行精密单点定位(PPP)的完整流程,涵盖从实时处理到事后处理(RTK_POST)的关键步骤。文章深入探讨了数据准备、软件配置、核心参数设置(如电离层、对流层、潮汐改正)以及常见问题排查,旨在帮助用户掌握高精度GNSS定位技术,实现从入门到精通的实战应用。

weixin_29047919的博客 279

python sqlite并发处理_Python的sqlite3和并发

你可以使用消费者 – 生产者模式。 例如,您可以创build线程之间共享的队列。 第一个从Web获取数据的线程将这些数据排入共享队列。 另一个拥有数据库连接的线程从队列中取出数据并将其传递给数据库。与stream行的观点相反,较新版本的sqlite3 确实支持来自多个线程的访问。这可以通过可选的关键字参数check_same_thread启用:sqlite.connect(":memory:", ...

weixin_36231529的博客 1332

Python爬虫实战:携程旅游攻略爬取全流程解析(动态接口+反爬破解+异步爬取)

本文介绍了携程旅游攻略的爬取全流程,涵盖静态和动态页面抓取、异步请求、高级反爬策略以及数据存储和简单分析。增加用户评论和评分抓取结合NLP分析攻略文本情感与关键词建立旅游推荐系统自动化代理IP池和验证码识别模块。

2201_76125261的博客 2039

sqlite3 错误处理

ProgrammingError: SQLite objects created in a thread can only be used in that same thread. The object was created in thread id 140736341201856 and this is thread id 123145515716608.解决方法:self.connectio...

blackj_liuyun的博客 4089

MATLAB与图像处理(一):图像中结构张量的求法(Structure Tensor)

1.结构张量的作用:       能够区分图像中的平坦区域,边缘,角点; 2.图像中的结构张量的定义    1)是一个矩阵;    2)与图像的水平,垂直梯度有关,定义如下: 在MATLAB中,可以用如下语句求解:[Ix,Iy]=gradient(Image); 3)求出结构张量矩阵的行列式,和迹(矩阵对角线之和)   行列式:K=det(E);   迹:  

wenyusuran的专栏 5242

【车载以太网】【SOMEIP】Wireshark测试someip

一、 Wireshark SOMEIP plugin 1.1 插件安装 Wireshark插件目录:Help -> About Wireshark -> Folders/Pluginshttps://github.com/jamores/eth-ws-someip 解压后,将所有后缀是lua的文件拷贝到Wireshark安装目录plugins/2.4.10/下。 1.2时间戳调整为UTC显示格式 View -> Time Display Format -> Date and Tim.

专注汽车软件开发、AutoSAR、车载以太网、SOA、EE架构。 9725

flask中使用sqlite数据库报错:sqlalchemy.exc.ProgrammingError:(sqlite3.ProgrammingError)

此线程错误解决方式很简单,只需要数据库连接配置中加入一个参数check_same_thread=False,即可解决 import os # from mysql import connector BASE_DIR = os.path.abspath(os.path.dirname(__file__)) # 通用配置 class BaseConfig(): SQLALCHEMY_COMM...

z_ipython的博客 2599

【WRF编译-Lab1】使用自动脚本编译WRF:错误总结

WRF编译过程及错误总结

WW、forever的博客 83

学富五车的你,敢来迎战Python开发的成语接龙游戏吗?

点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤真者,精诚之至也,不精不诚,不能动人。成语接龙今天难得下班早,不用做公司...

pdcfighting的博客 878

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

我用Python写了一个成语接龙的游戏,并把它部署到了手机上

我用Python写了一个成语接龙的游戏,并把它部署到了手机上 成语大全数据 6月高考的前一天,我发布的一篇文章,决战高考,帮你秒变成语之王,当时只是把 http://chengyu.haoshiwen.org/ 网站的3W+条成语爬下来保存到数据库中。 成语数据库 文末提到有机会抽时间拿这些数据搞点事情,但这事儿一直就这么放着了。 image.png 今天我们就来用3W+的...

清风Python 1598

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

学富五车的你,敢迎战Python开发的成语接龙游戏吗?

成语接龙 今天难得下班早,不用做公司的末班车,和同事乘公交回家。中途上来几个学生,相互在玩着成语接龙游戏。说是成语,但词汇却真是不堪入耳。 6月高考的前一天,我发布的一篇文章,决战高考,帮你秒变成语之王,当时只是吧网站的成语爬下来保存到数据库中,文末提到有机会了抽时间拿这些数据搞点事情,那么今天就来搞事情吧。用3W+的成语数据库,开发一款成语接龙的小游戏。 接龙规则 ...

清风Python 790

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Flask开发成语接龙游戏,以后闲了手机玩玩自己写的游戏吧!

明天你好,我叫干不倒 一直比较喜欢看《欢乐喜剧人》,其中有一期小沈龙的节目,名字叫明天你好,我叫干不倒... 父亲的身体一直不好,因为常年的酗酒抽烟,患脑梗好些年头了,周末病情有些恶化,住院治疗了。我是家中独子,父母生病只能靠我来照看,但IT这行请假尤其长假简直奢望,但母亲一个人忙不过来,让我有些不知如何是好。希望老爸的病情能有所好转,早日康复吧。 英语单词学习应用 周五发布的文章...

清风Python 886

Flask开发成语接龙游戏,闲来无事手机玩玩自己写的游戏吧!

英语单词学习应用 周五发布的文章Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署发布后,看到喜欢的人比较多。本来周末打算照着扇贝/极光单词,写一个英语单词自测工具。但苦于单词的分类和数据没找到很细致的文档,所以这个内容往后延一下。 如果大家有英语单词、音标、翻译这种根据不同年级或等级分类的数据可以共享给我,开发完成大家一起学习背单词。 成语接龙 6月高考的前一...

华为云官方博客 3445

Flask开发成语接龙游戏,以后闲了手机玩玩自己写的游戏吧!#华为云·寻找黑马程序员#

文章目录明天你好,我叫干不倒英语单词学习应用成语接龙接龙规则实现分析数据库信息登陆排行游戏界面成语判断拼音识别代码编写Jinjia2模板Flask装饰器游戏演示手机搭建项目代码clonepipenv导入The End 明天你好,我叫干不倒 一直比较喜欢看《欢乐喜剧人》,其中有一期小沈龙的节目,名字叫明天你好,我叫干不倒… 父亲的身体一直不好,因为常年的酗酒抽烟,患脑梗好些年头了,周末病情有些恶化,...

SlaughterDevil的博客 740

日照三中中计算机专业,日照实验高中

出国留学网高考频道在考试后及时公布各科高考试题答案和高考作文及试卷专家点评,请广大考生家长关注。时光飞逝,不管情愿与否,无论准备与否,我们已走进高三,走近我们的梦!祝愿决战2014高考的新高三学员能倍加努力,在2014年高考中也能取得优异的成绩。1.下列词语中加点的字的读音,全都不相同的一组是 ( )A.霎时 飒爽 厦门 歃血为盟 煞费苦心B.凭吊 棋枰 浮萍 评头品足 饮鸩止渴C.愧疚 日晷 纠...

weixin_39602569的博客 161

python从键盘上输入五个数字打一成语_Python快速爬取车标网图片,以后不要说这什么车你不认识了!...

知识不分边界......人,为什么要读书?举个例子:当看到天边飞鸟,你会说:“落霞与孤鹜齐飞,秋水共长天一色。”而不是:“卧靠,好多鸟。”;当你失恋时你低吟浅唱道:“人生若只如初见,何事秋风悲画扇。”而不是千万遍地悲喊:“蓝瘦,香菇!”今天回家早,陪俩小爷在楼下遛弯,忽然听见一阵马达轰鸣声,嗖~~闪一辆跑车,大大问;“爸爸,这是什么车啊?” 我:“红色的车…”小小说:“爸爸肯定不认识,我也知道是红...

weixin_32508109的博客 213

爬取车标网图片与数据,以后不要说这什么车你不认识了!#华为云·寻找黑马程序员#

文化不分边界 人,为什么要读书?举个例子: 当看到天边飞鸟,你会说:“落霞与孤鹜齐飞,秋水共长天一色。”而不是:“卧靠,好多鸟。”; 当你失恋时你低吟浅唱道:“人生若只如初见,何事秋风悲画扇。”而不是千万遍地悲喊:“蓝瘦,香菇!” 今天回家早,陪俩小爷在楼下遛弯,忽然听见一阵马达轰鸣声,嗖~~闪一辆跑车,大大问;“爸爸,这是什么车啊”我:“红色的车…”,小小说:“爸爸肯定不认识,我也知道是红色的车...

SlaughterDevil的博客 709

Python快速爬取车标网图片,以后不要说这什么车你不认识了!

知识不分边界...... 人,为什么要读书?举个例子: 当看到天边飞鸟,你会说:“落霞与孤鹜齐飞,秋水共长天一色。”而不是:“卧靠,好多鸟。”; 当你失恋时你低吟浅唱道:“人生若只如初见,何事秋风悲画扇。”而不是千万遍地悲喊:“蓝瘦,香菇!” 今天回家早,陪俩小爷在楼下遛弯,忽然听见一阵马达轰鸣声,嗖~~闪一辆跑车,大大问;“爸爸,这是什么车啊?” 我:“红色的车…”小小说:“爸爸肯定不认识,我也知道是红色的车。”气氛有些冷场… 别人看车关注牌子,我看车关注宽敞不,睡着舒服不?可不管怎样不能在孩子

爬遍所有网站 522

爬取车标网图片与数据,以后不要说这什么车你不认识了!

文化不分边界 人,为什么要读书?举个例子: 当看到天边飞鸟,你会说:“落霞与孤鹜齐飞,秋水共长天一色。”而不是:“卧靠,好多鸟。”; 当你失恋时你低吟浅唱道:“人生若只如初见,何事秋风悲画扇。”而不是千万遍地悲喊:“蓝瘦,香菇!” 今天回家早,陪俩小爷在楼下遛弯,忽然听见一阵马达轰鸣声,嗖~~闪一辆跑车,大大问;“爸爸,这是什么车啊”我:“红色的车...”,小小说:“爸爸肯定不认识...

清风Python 945

python爬虫爬汽车图片_Python快速爬取车标网图片,以后不要说这什么车你不认识了!...

知识不分边界......人,为什么要读书?举个例子:当看到天边飞鸟,你会说:“落霞与孤鹜齐飞,秋水共长天一色。”而不是:“卧靠,好多鸟。”;当你失恋时你低吟浅唱道:“人生若只如初见,何事秋风悲画扇。”而不是千万遍地悲喊:“蓝瘦,香菇!”今天回家早,陪俩小爷在楼下遛弯,忽然听见一阵马达轰鸣声,嗖~~闪一辆跑车,大大问;“爸爸,这是什么车啊?” 我:“红色的车…”小小说:“爸爸肯定不认识,我也知道是红...

weixin_36314117的博客 624
上一篇: 我要做这条GAI最骚气的二维码
下一篇: 端午节用Python教你画绿豆糕
清风 python
博客等级 码龄9年 64粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值