5行Python代码就能让你的电脑 “永不息屏”?
前言
Python不虧是一門?優(yōu)雅?、?易入門?的編程語言。往往用很少量的代碼,就能幫助你完成一件很漂亮的事兒。
最開始學(xué)習(xí)Python,不需要太過復(fù)雜。只要玩兒的開心就行,慢慢培養(yǎng)興趣,等你上手后,你會學(xué)習(xí)的更有信心。
今天我們就來玩玩兒,?5行代碼能做啥??這里我為大家介紹兩個好玩兒的小項目,介紹如下:
-
項目一:?5行代碼讓電腦永不息屏!
-
項目二:?5行代碼爬取表格數(shù)據(jù)!
項目一:5行代碼讓電腦 永不鎖屏
眾所周知?,當(dāng)你的電腦鼠標(biāo)一直在動的時候,系統(tǒng)會默認(rèn)你的電腦是在工作當(dāng)中,因此就不會息屏。
既然是玩嗎?你就不要杠,說為啥??“不設(shè)置用不息屏”??那樣,你贏了,我無話可說。哈哈!
這里就是用代碼自動化控制鼠標(biāo),實現(xiàn)鼠標(biāo)的??“上下左右”??移動操作,讓電腦誤以為是認(rèn)為在操作鼠標(biāo)。
在這里,我們使用的是Python中的?pyautogui庫?。如果你的電腦沒有安裝這個庫,可以使用下面代碼安裝一下。
pip?install?pyautogui
控制鼠標(biāo)移動,使用的是pyautogui庫中的moveRel(x,y)函數(shù),用法如下:
-
含義:?根據(jù)當(dāng)前位置, 相對移動鼠標(biāo)指針;
-
注意:?當(dāng)x/y大于0,則表示往右/往下移動鼠標(biāo)指針。當(dāng)x/y小于0,則往左/往上移動鼠標(biāo)指針【x/y是整數(shù)】;
當(dāng)然這個隨機數(shù),肯定不要你人為去設(shè)置,我們也隨機生成。在這里我需要為大家在介紹random庫中的一個函數(shù)random.randint(a,b),用法如下:
-
含義:?用于生成指定數(shù)值范圍內(nèi)的隨機整數(shù);
-
注意:?該函數(shù)有兩個參數(shù)a和b,表示指定區(qū)間的上限和下限;
import random
random.randint(a=?100
,b=
300
)
結(jié)果如下:
有了這些基礎(chǔ)后,我們直接上代碼吧!
#?導(dǎo)入相關(guān)庫
import?pyautogui
import?random
import?time
#?使用while True循環(huán),讓程序一直執(zhí)行!
while?True?:
x?=?random.randint(?-200?,?200?)
y?=?random.randint(?-200?,?200?)
pyautogui.moveRel(x,y)
time.sleep(?5
)?
#?讓鼠標(biāo)移動到某個位置,停留幾秒鐘,我怕它太累
當(dāng)然,?pyautogui庫?作為一個自動化操作鼠標(biāo)的庫,有很多值得你去挖掘的知識點。這里只是簡單使用,其它知識可以根據(jù)你的實際需求,去系統(tǒng)學(xué)習(xí)一下。
項目二:5行代碼爬取表格數(shù)據(jù)
如果說想學(xué)習(xí)Python爬蟲的話,我想這應(yīng)該是最簡單爬蟲代碼了。
說白了,就是pandas庫爬取表格數(shù)據(jù)。這個其實和Excel有點像,Excel不就是只能爬取一些規(guī)則的表格數(shù)據(jù)嗎?但是這個更好用哦,畢竟不讓你動手。
今天我們爬取到網(wǎng)頁是??“中商情報網(wǎng)”?。
網(wǎng)址如下:?https://s.askci.com/stock/a/0-0?reportTime
如果想要使用pandas爬取數(shù)據(jù),它的HTML結(jié)構(gòu)是下面這個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,查看源代碼,當(dāng)我們定位待爬取數(shù)據(jù)時,會發(fā)現(xiàn)該數(shù)據(jù)滿足這個特點。
其余知識沒必要多講,畢竟都是pandas中的知識,大家很熟悉了。?上代碼:
#?導(dǎo)入相關(guān)庫
import?pandas??as?pd
import?csv
#?我們只爬取十頁數(shù)據(jù)
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
)
結(jié)果如下:
妥妥的,這么多家上市公司的數(shù)據(jù),就被你收入囊中了。?然后可以拿去做個簡單的分析,或者練習(xí)pandas數(shù)據(jù)處理,不香嗎?
這里還有一點值得說明的是,上面代碼中有一個?[3]?,代表啥意思呢?
這是因為網(wǎng)頁上可能存在多個表格,這時候就需要靠列表的切片?tables[x]?,來指定獲取哪個表格。
總結(jié)
以上是生活随笔為你收集整理的5行Python代码就能让你的电脑 “永不息屏”?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【题解】[USACO12JAN]视频游戏
- 下一篇: net5 failed to load