Python小项目:5行代码能做啥?

彩屏
• 阅读 554

前言

Python 不愧是一门优雅易入门的编程语言。往往用很少量的代码,就能帮助你完成一件很漂亮的事儿。

最开始学习 Python,不需要太过复杂。只要玩的开心就行,慢慢培养兴趣,等你上手后,你会学习得更有信心。

今天我们就来玩玩儿,5 行代码能做啥? 这里我为大家介绍两个好玩儿的小项目,介绍如下:

  • 项目一: 5 行代码让电脑永不息屏!
  • 项目二: 5 行代码爬取表格数据!

Python小项目:5行代码能做啥?

项目一:5行代码让电脑 永不锁屏

众所周知,当你的电脑鼠标一直在动的时候,系统会默认你的电脑是在工作当中,因此就不会息屏。

既然是玩吗?你就不要杠,说为啥  “不设置用不息屏” ?那样,你赢了,我无话可说。哈哈!

这里就是用代码自动化控制鼠标,实现鼠标的 “上下左右” 移动操作,让电脑误以为是人在操作鼠标。

在这里,我们使用的是Python中的pyautogui库。如果你的电脑没有安装这个库,可以使用下面的代码安装一下。

pip install pyautogui

控制鼠标移动,使用的是pyautogui库中的moveRel(x,y)函数,用法如下:

  • 含义:  根据当前位置, 相对移动鼠标指针;
  • 注意:  当x/y大于0,则表示往右/往下移动鼠标指针。当x/y小于0,则往左/往上移动鼠标指针【x/y是整数】;

当然这个随机数,肯定不要人为去设置,我们也随机生成。在这里我需要为大家在介绍random库中的一个函数random.randint(a,b),用法如下:

  • 含义:  用于生成指定数值范围内的随机整数;
  • 注意:  该函数有两个参数a和b,表示指定区间的上限和下限;
import random 
random.randint(a=100,b=300)

结果如下:

Python小项目:5行代码能做啥?

有了这些基础后,我们直接上代码吧!

# 导入相关库
import pyautogui
import random
import time

# 使用while True循环,让程序一直执行!
while True:
    x = random.randint(-200,200)
    y = random.randint(-200,200)
    pyautogui.moveRel(x,y)
    time.sleep(5) # 让鼠标移动到某个位置,停留几秒钟,我怕它太累

当然,pyautogui库作为一个自动化操作鼠标的库,有很多值得你去挖掘的知识点。这里只是简单使用,其它知识可以根据你的实际需求,去系统学习一下。

项目二:5行代码爬取表格数据

如果说想学习Python爬虫的话,我想这应该是最简单爬虫代码了。

说白了,就是pandas库爬取表格数据。这个其实和Excel有点像,Excel不就是只能爬取一些规则的表格数据吗?但是这个更好用哦,毕竟不让你动手。

今天我们爬取到的网页是  “中商情报网”

网址如下:

https://s.askci.com/stock/a/0...

如果想要使用pandas爬取数据,它的HTML结构是下面这个Table格式的。

<table class="..." id="...">
     <thead>
     <tr>
     <th>...</th>
     </tr>
     </thead>
     <tbody>
        <tr>
            <td>...</td>
        </tr>
        <tr>...</tr>
        <tr>...</tr>
        ...
        <tr>...</tr>
        <tr>...</tr>
    </tbody>
</table>

我们点击F12,查看源代码,当我们定位待爬取数据时,会发现该数据满足这个特点。

Python小项目:5行代码能做啥?

其余知识没必要多讲,毕竟都是pandas中的知识,大家很熟悉了。上代码:

# 导入相关库
import pandas as pd
import csv

# 我们只爬取十页数据
for i in range(1,10):  # 爬取全部页
    tb = pd.read_html(f'http://s.askci.com/stock/a/?reportTime=2021-03-31&pageNum={i}')[3] 
    tb.to_csv(r'上市公司.csv', mode='a', encoding='utf_8_sig', header=1, index=0)

结果如下:

Python小项目:5行代码能做啥?

妥妥的,这么多家上市公司的数据,就被你收入囊中了。然后可以拿去做个简单的分析,或者练习pandas数据处理,不香吗?

这里还有一点值得说明的是,上面代码中有一个[3],代表什么意思呢?

这是因为网页上可能存在多个表格,这时候就需要靠列表的切片tables[x],来指定获取哪个表格。

好了,今天的案例就介绍到这里,你学会了吗?

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Aimerl0 Aimerl0
4年前
Python网络爬虫与信息提取
title:Python网络爬虫与信息提取date:2020121001:00:23tags:Pythoncategories:学习笔记写在前面不知道写啥其实说实话TOC网络爬虫之规则安装requests库cmd命令行打开输入pip3installrequests,等待即可简单测试,爬一下bkjwpythonimportrequ
Karen110 Karen110
4年前
​一篇文章总结一下Python库中关于时间的常见操作
前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在
Stella981 Stella981
4年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
4年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
彩屏
彩屏
Lv1
惊起归鸿不成字,辞柯落叶最知秋。
文章
5
粉丝
0
获赞
0