如何用5 行 Python 代碼就能讓你的電腦永不息屏!

前言

Python 不愧是一門優(yōu)雅、易入門的編程語言。往往用很少量的代碼,就能幫助你完成一件很漂亮的事兒。
最開始學(xué)習(xí) Python,不需要太過復(fù)雜。只要玩兒的開心就行,慢慢培養(yǎng)興趣,等你上手后,你會(huì)學(xué)習(xí)的更有信心。今天我們就來玩玩兒,5 行代碼能做啥? 這里我為大家介紹兩個(gè)好玩兒的小項(xiàng)目,介紹如下:

  • 項(xiàng)目一: 5 行代碼讓電腦永不息屏!
  • 項(xiàng)目二: 5 行代碼爬取表格數(shù)據(jù)!

項(xiàng)目一:5行代碼讓電腦 永不鎖屏

眾所周知,當(dāng)你的電腦鼠標(biāo)一直在動(dòng)的時(shí)候,系統(tǒng)會(huì)默認(rèn)你的電腦是在工作當(dāng)中,因此就不會(huì)息屏。既然是玩嗎?你就不要杠,說為啥 “不設(shè)置用不息屏” ?那樣,你贏了,我無話可說。哈哈!這里就是用代碼自動(dòng)化控制鼠標(biāo),實(shí)現(xiàn)鼠標(biāo)的 “上下左右” 移動(dòng)操作,讓電腦誤以為是認(rèn)為在操作鼠標(biāo)。在這里,我們使用的是Python中的pyautogui庫。如果你的電腦沒有安裝這個(gè)庫,可以使用下面代碼安裝一下。

pip install pyautogui

控制鼠標(biāo)移動(dòng),使用的是pyautogui庫中的moveRel(x,y)函數(shù),用法如下:

  • 含義: 根據(jù)當(dāng)前位置, 相對(duì)移動(dòng)鼠標(biāo)指針;
  • 注意: 當(dāng)x/y大于0,則表示往右/往下移動(dòng)鼠標(biāo)指針。當(dāng)x/y小于0,則往左/往上移動(dòng)鼠標(biāo)指針【x/y是整數(shù)】;

當(dāng)然這個(gè)隨機(jī)數(shù),肯定不要你人為去設(shè)置,我們也隨機(jī)生成。在這里我需要為大家在介紹random庫中的一個(gè)函數(shù)random.randint(a,b),用法如下:

  • 含義: 用于生成指定數(shù)值范圍內(nèi)的隨機(jī)整數(shù);
  • 注意: 該函數(shù)有兩個(gè)參數(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)到某個(gè)位置,停留幾秒鐘,我怕它太累

當(dāng)然,pyautogui庫作為一個(gè)自動(dòng)化操作鼠標(biāo)的庫,有很多值得你去挖掘的知識(shí)點(diǎn)。這里只是簡(jiǎn)單使用,其它知識(shí)可以根據(jù)你的實(shí)際需求,去系統(tǒng)學(xué)習(xí)一下。

項(xiàng)目二:5行代碼爬取表格數(shù)據(jù)

如果說想學(xué)習(xí)Python爬蟲的話,我想這應(yīng)該是最簡(jiǎn)單爬蟲代碼了。
說白了,就是pandas庫爬取表格數(shù)據(jù)。這個(gè)其實(shí)和Excel有點(diǎn)像,Excel不就是只能爬取一些規(guī)則的表格數(shù)據(jù)嗎?但是這個(gè)更好用哦,畢竟不讓你動(dòng)手。今天我們爬取到網(wǎng)頁是 “中商情報(bào)網(wǎng)” 。網(wǎng)址如下: s.askci.com/stock/a/0-0…

如果想要使用pandas爬取數(shù)據(jù),它的HTML結(jié)構(gòu)是下面這個(gè)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>

我們點(diǎn)擊F12,查看源代碼,當(dāng)我們定位待爬取數(shù)據(jù)時(shí),會(huì)發(fā)現(xiàn)該數(shù)據(jù)滿足這個(gè)特點(diǎn)。

其余知識(shí)沒必要多講,畢竟都是pandas中的知識(shí),大家很熟悉了。上代碼:

# 導(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ù),就被你收入囊中了。然后可以拿去做個(gè)簡(jiǎn)單的分析,或者練習(xí)pandas數(shù)據(jù)處理,不香嗎? 這里還有一點(diǎn)值得說明的是,上面代碼中有一個(gè)[3],代表啥意思呢?這是因?yàn)榫W(wǎng)頁上可能存在多個(gè)表格,這時(shí)候就需要靠列表的切片tables[x],來指定獲取哪個(gè)表格。好了,今天的案例就介紹到這里,你學(xué)會(huì)了嗎?

本文轉(zhuǎn)自 https://juejin.cn/post/7045889084987801607,如有侵權(quán),請(qǐng)聯(lián)系刪除。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容