摘要:同時(shí)無論在哪種平臺(tái)上,都可以用進(jìn)行系統(tǒng)編程。這樣導(dǎo)入模塊并使用生成隨機(jī)數(shù)中的模塊提供了生成隨機(jī)數(shù)的函數(shù)。生成的隨機(jī)數(shù)介于和之間。可以從自己定義的范圍中生成一個(gè)隨機(jī)數(shù),如下所示操作日期和時(shí)間你可以從日期中提取所需的值,如下所示。
翻譯:瘋狂的技術(shù)宅
https://likegeeks.com/python-...
本文首發(fā)微信公眾號(hào):前端先鋒
歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章
Python是一種非常流行的腳本語言,而且功能非常強(qiáng)大,幾乎可以做任何事情,比如爬蟲、網(wǎng)絡(luò)工具、科學(xué)計(jì)算、樹莓派、Web開發(fā)、游戲等各方面都可以派上用場(chǎng)。同時(shí)無論在哪種平臺(tái)上,都可以用 Python 進(jìn)行系統(tǒng)編程。
機(jī)器學(xué)習(xí)可以用一些 Python 庫來實(shí)現(xiàn),比如人工智能常用的TensorFlow。也可以用像 NLTK 這樣的 Python 庫進(jìn)行自然語言處理(NLP)。
本文討論基本的 Python 編程,后續(xù)會(huì)寫一些 Python 編程的實(shí)際案例。
操作字符串Python 中的字符串是不可變的,所以不能直接修改。對(duì)字符串內(nèi)容的任何更改都需要產(chǎn)生新的副本。
在 Python 中處理字符串非常簡單。
str = "welcome " + "to Python" print (str)
這是字符串連接,你也可以對(duì)字符串做乘法操作:
重復(fù)字符串str = "Python" * 2 print (str)與非字符串拼接
可以用 str() 函數(shù)將非字符串的值轉(zhuǎn)換為字符串,然后再連接,如下所示:
str = "This is test number " + str(15) print (str)搜索子字符串
可以使用 find() 方法搜索子字符串,如下所示:
str = "welcome to Python" print(str.find("Python"))
如果找到了字符串"Python",則 find 方法會(huì)返回第一次出現(xiàn)這個(gè)字符串的位置。
如果沒有找到,則返回 -1。
find 函數(shù)默認(rèn)從第一個(gè)字符開始搜索,也可以從第n個(gè)字符開始,如下所示:
str = "welcome to Python" print(str.find("Python",12))
因?yàn)槲覀儚牡?2個(gè)字符開始,所以找不到 Python 這個(gè)單詞,所以它會(huì)返回 -1。
獲取子字符串所以我們得到了我們要搜索的字符串的索引,現(xiàn)在我們要打印匹配的字符串。
你可以按索輸出印字符串,如下所示:
str = "first second third" print(str[:2]) print(str[2:]) print(str[3:5]) print(str[-1])
在第 2 行的代碼會(huì)打印第一個(gè)和第二個(gè)字符,而第 3 行會(huì)從第二個(gè)字符開始打印到結(jié)束。要注意代碼中結(jié)冒號(hào)的位置。字符串從 0 開始計(jì)數(shù)。
如果使用負(fù)數(shù),則會(huì)從最后開始計(jì)數(shù)。第 5 行代碼會(huì)打印最后一個(gè)字符。
你可以用如下方法替換字符串:
str = "This website is about programming" str2 = str.replace("This", "That") print(str2)
如果你想替換的字符串多次出現(xiàn),但是只想替換第一次出現(xiàn)的,可以指定位置:
str = "This website is about programming I like this website" str2 = str.replace("website", "page",1) print(str2)
第一個(gè)詞只被替換了。
去除字符串兩端的空格可以用 strip 方法去掉字符串兩端的空格,如下所示:
str = " This website is about programming " print(str.strip())
你可以用rstrip僅去除最右的空格,或者用 lstrip 去除最左邊的空格。
改變字符大小寫在某些情況下你可能需要改變字符的大小寫。
str="Welcome to likegeeks" print(str.upper()) print(str.lower())將字符串轉(zhuǎn)換為數(shù)字
前面學(xué)到了用 str()函數(shù)將數(shù)字轉(zhuǎn)為字符串,但這不是 Python 中唯一的轉(zhuǎn)換函數(shù),另外還有 int() 、float()、long()和其他強(qiáng)制轉(zhuǎn)換函數(shù)。
int() 可以把輸入的字符串轉(zhuǎn)為整數(shù),float() 函數(shù)將字符串轉(zhuǎn)為float。
str="10" str2="20" print(str+str2) print(int(str)+int(str2))
第 3 行只是連接兩個(gè)字符串,而第 4 行把兩個(gè)值相加并輸出結(jié)果。
字符串計(jì)數(shù)可以用min()找到字符串中 ASCII 值最小的字符,max()找到最大的字符,用len()函數(shù)得到字符的總長度。
str="welcome to Python" print(min(str)) print(max(str)) print(len(str))迭代字符串
可以用 for 迭代字符串并多帶帶操作每個(gè)字符,如下所示:
str="welcome to likegeeks website" for i in range(len(str)): print(str[i])
其中 len() 函數(shù)用來得到字符串的長度。
字符串編碼如果你使用的是Python 3,默認(rèn)情況下所有字符都是 Unicode 字符集編碼,但是如果用的是Python 2,可能需要對(duì)字符串進(jìn)行編碼,如下所示:
str="welcome to Python" str.encode("utf-8")操作數(shù)字
在 Python 中定義數(shù)字變量的方式如下:
a=15
可以定義整數(shù),也可以定義浮點(diǎn)數(shù)。
浮點(diǎn)數(shù)可以用 int()函數(shù)進(jìn)行舍入,如下所示:
a=15.5 print(int(a))舍入數(shù)字
可以用 round() 函數(shù)對(duì)數(shù)字進(jìn)行舍入:
a=15.5652645 print(round(a,2))
只需指定需要舍入到小數(shù)點(diǎn)后幾位。
自定義精度的數(shù)字很多情況下會(huì)用到自定義精度的浮點(diǎn)數(shù)。
可以處理用戶自定義精度數(shù)的 decimal 模塊。
這樣導(dǎo)入模塊并使用:
from decimal import * a=Decimal(5.5)生成隨機(jī)數(shù)
Python 中的 random 模塊提供了生成隨機(jī)數(shù)的函數(shù)。
import random print(random.random())
生成的隨機(jī)數(shù)介于 0.0 和 1.0 之間。
可以從自己定義的范圍中生成一個(gè)隨機(jī)數(shù),如下所示:
import random numbers=[1,2,3,4,5,6,7] print(random.choices(numbers))操作日期和時(shí)間
你可以從日期中提取所需的值,如下所示。
import datetime cur_date = datetime.datetime.now() print(cur_date) print(cur_date.year) print(cur_date.day) print(cur_date.weekday()) print(cur_date.month) print(cur_date.time())
可以得到兩個(gè)時(shí)間或日期之間的差,如下所示:
import datetime time1 = datetime.datetime.now() time2 = datetime.datetime.now() timediff = time2 - time1 print(timediff.microseconds())
上例中的 timediff 變量是 timedelta 類型的對(duì)象,你也可以自己創(chuàng)建這種對(duì)象:
time1 = datetime.datetime.now() time2 = datetime.timedelta(days=3) time3=time1+time2 print(time3.date())格式化日期和時(shí)間
可以用 strftime() 格式化日期或時(shí)間。
下表指定了一些常用的格式選項(xiàng):
%y 兩位數(shù)的年份表示(00-99)
%Y 四位數(shù)的年份表示(000-9999)
%m 月份(01-12)
%d 月內(nèi)中的一天(0-31)
%H 24小時(shí)制小時(shí)數(shù)(0-23)
%I 12小時(shí)制小時(shí)數(shù)(01-12)
%M 分鐘數(shù)(00=59)
%S 秒(00-59)
%a 本地簡化星期名稱
%A 本地完整星期名稱
%b 本地簡化的月份名稱
%B 本地完整的月份名稱
%c 本地相應(yīng)的日期表示和時(shí)間表示
%j 年內(nèi)的一天(001-366)
%p 本地A.M.或P.M.的等價(jià)符
%U 一年中的星期數(shù)(00-53)星期天為星期的開始
%w 星期(0-6),星期天為星期的開始
%W 一年中的星期數(shù)(00-53)星期一為星期的開始
%x 本地相應(yīng)的日期表示
%X 本地相應(yīng)的時(shí)間表示
%Z 當(dāng)前時(shí)區(qū)的名稱
%% %號(hào)本身
import datetime date1 = datetime.datetime.now() print(date1.strftime("%d. %B %Y %I:%M%p"))從字符串創(chuàng)建日期
可以用 strptime()函數(shù)從字符串創(chuàng)建日期,如下所示:
date1=datetime.datetime.strptime(“2015-11-21”, “%Y-%m-%d”)
也可以像這樣創(chuàng)建:
date1= datetime.datetime(year=2015, month=11, day=21)
處理文件系統(tǒng)在 Python 中處理文件非常容易,不管你信不信,在所欲語言中是是最簡單的。當(dāng)然你也可以說 Python 是一種做什么事情都最簡單的語言。
復(fù)制文件shutil 模塊中包含用于復(fù)制文件的功能。
import shutil copied_path = shutil.copy("my_file.txt", "copied_file.txt")
如果 my_file.txt 是一個(gè)軟連接的話,那么上面的代碼將會(huì)把 copied_file.txt 創(chuàng)建為獨(dú)立的文件。
你也可以創(chuàng)建一個(gè)軟鏈接的副本,如下所示:
copied_path = shutil.copy("my_file.txt", "copied_file.txt",follow_symlinks=False)
移動(dòng)文件你可以像這樣移動(dòng)一個(gè)文件:
import shutil shutil.move("file1.txt", "file3.txt")
也可以使用 os 模塊中的 rename 函數(shù)重命名文件,如下所示:
import os os.rename("file1.txt", "file3.txt")讀寫文本文件
可以用 open 函數(shù)打開文件,然后再用 read 或write 方法進(jìn)行讀寫。
fd = open("file1.txt") content = fd.read() print(content)
首先,使用 open 函數(shù)打開文件并讀取,然后我再用 read 函數(shù)讀取文件內(nèi)容,最后,將得到的內(nèi)容放入變量 content 中。
你可以指定 read()()函數(shù)讀取的字節(jié)數(shù):
fd.read(20)
如果文件不是太大的話,你可以將整個(gè)內(nèi)容讀入一個(gè)列表,然后再遍歷列表打印輸出。
content = fd.readlines() print(content[0])
可以通過指定打開的模式來寫入文件。有兩種寫入模式,即寫入模式和追加模式。
下面是寫入模式,會(huì)覆蓋掉文件中的舊內(nèi)容。
fd = open("file1.txt","w") content = fd.write("YOUR CONTENT GOES HERE")
下面是附加模式:
fd = open("file1.txt","a") content = fd.write("YOUR CONTENT GOES HERE")創(chuàng)建目錄
可以用 os模塊中的 mkdir 函數(shù)創(chuàng)建一個(gè)新目錄,如下所示:
import os os.mkdir("./NewFolder)
如果目錄已經(jīng)存在將會(huì)引發(fā)錯(cuò)誤。不過不用擔(dān)心,在以后的文章中會(huì)討論異常處理,可以幫你避免此類錯(cuò)誤。
獲取訪問和修改以及創(chuàng)建時(shí)間可以用 getmtime()、 getatime() 和 getctime() 分別獲取修改時(shí)間、訪問時(shí)間和創(chuàng)建時(shí)間。
返回的時(shí)間格式為 Unix 時(shí)間戳,我們可以把它轉(zhuǎn)換為人類可讀的格式,如下所示:
import os import datetime tim=os.path.getctime("./file1.txt") print(datetime.datetime.fromtimestamp(tim))迭代文件
你可以用 os 模塊中的 listdir() 函數(shù)來獲取文件:
import os files = os.listdir(".") print(files)
此外,你可以用 glob 模塊執(zhí)行相同的操作:
import glob files = glob.glob("*") print(files)
你可以為 glob()設(shè)定任何一種擴(kuò)展名,例如設(shè)定為 * .doc 獲取所有word文檔。
序列化Python對(duì)象此過程用于將 Python 對(duì)象序列化為字節(jié)流,以便以后重用。
你可以用 pickle 模塊做到這一點(diǎn):
import pickle fd = open("myfile.pk ", "wb") pickle.dump(mydata,fd)
可以用 load() 函數(shù)反序列化此數(shù)據(jù),如下所示:
import pickle fd = open("myfile.pk ", "rb") mydata = pickle.load(fd)壓縮文件
Python 標(biāo)準(zhǔn)庫使你可以處理不同格式的壓縮文件,如tar,zip,gzip,bzip2。
要處理 zip文件,你可以使用 zipfile模塊:
import zipfile my_zip = zipfile.ZipFile("zipped_file.zip", mode="r") print(file.namelist())
你可以把一個(gè)文件壓縮成 zip 格式,如下所示:
import zipfile file=zipfile.ZipFile("files.zip","w") file.write("file1.txt") file.close()
可以用 extractall() 方法提取 zip 壓縮包中的文件:
import zipfile file=zipfile.ZipFile("files.zip","r") file.extractall() file.close()
另外還可以用附加模式將文件附加到現(xiàn)有的zip文件,如下所示:
import zipfile file=zipfile.ZipFile("files.zip","a") file.write("file2.txt") file.close()
在處理 gz 或 bz 文件時(shí),可以用和上面相同的套路。不過要導(dǎo)入 gzip 模塊或 bz2 模塊。
import gzip import bz2 gz_file=gzip.GzipFile("files.gz","r") bz_file=bz2.BZ2File("fiels.bz2","r")
然后用同樣的方式讀寫。
你可以使用 unrar 包處理rar文件。首先,安裝包:
pip install unrar
然后用同樣的方式使用。
import unrar.rarfile m=unrar.rarfile.RarFile("file.rar") m.namelist() m.extractall()解析CSV文件
一個(gè)非常有用的包叫做 pandas。它可以解析 CSV 和 Excel 文件,并輕松地從中提取數(shù)據(jù)。
首先,安裝包
pip install pandas
然后你可以在自己的代碼中使用它,如下所示:
import pandas data=pandas.read_csv("file.csv)
默認(rèn)情況下,Pandas 將第一列視為每行的標(biāo)簽。如果列索引不是第一列,則可以通過傳遞 index_col 參數(shù)來指定列索引。
如果文檔中沒有行標(biāo)簽,則應(yīng)使用參數(shù) index_col = False。
要寫入CSV文件,可以使用 to_csv() 方法。
data.to_csv("file.csv)
解析Excel文件可以用 pandas 模塊中的 read_excel() 方法來解析excel文件。
data = pd.read_excel("file.xls", sheetname="Sheet1")
如果有多個(gè)工作表,可以這樣加載:
ta = pd.ExcelFile("file.xls")
這樣寫入excel文件:
ta.to_excel("file.xls", sheet="Sheet1")
網(wǎng)絡(luò)和連接Python 有一個(gè) socket 類,它提供了一種通過低級(jí) API 訪問網(wǎng)絡(luò)的方法,它支持許多網(wǎng)絡(luò)協(xié)議。
import socket host = "192.168.1.5" port = 5050 m_sock = socket.create_connection ((host, port))
這段代碼與 IP 地址為 192.168.1.5 的主機(jī)通過 5050 端口建立連接。
打開 socket 后,就可以發(fā)送和接收數(shù)據(jù)了。
m_sock.sendall(b"Hello World")
注意,我在字符串之前使用了 b 字符,因?yàn)閿?shù)據(jù)需要是字節(jié)字符串。
如果發(fā)送的數(shù)據(jù)太大,你應(yīng)該通過循環(huán)分割并發(fā)送,如下所示:
msg = b"Longer Message Goes Here" mesglen = len(msg) total = 0 while total < msglen: sent = m_sock.send(msg[total:]) total = total + sent
要接收數(shù)據(jù),你需要告訴 recv() 方法一次讀入多少個(gè)字節(jié)。
data_in = m_sock.recv(2000)
這是有效的,因?yàn)槟隳軌虼_定發(fā)送的消息長度小于2000個(gè)字節(jié)。
如果消息很大,則必須反復(fù)循環(huán),直到收到所有的數(shù)據(jù)塊。
buffer = bytearray(b" " * 2000) m_sock.recv_into(buffer)
在這里定義了一個(gè)空緩沖區(qū),然后將消息寫入緩沖區(qū)。
從POP郵件服務(wù)器接收電子郵件poplib 模塊使你可以與 POP 服務(wù)器進(jìn)行通信。
import getpass,poplib pop_serv = poplib.POP3("192.168.1.5") pop_serv.user("myuser") pop_serv.pass_(getpass.getpass())
getpass 模塊可以安全地處理密碼。
如果需要安全連接,可以用 POP3_SSL 類。
要獲取郵件列表和郵件計(jì)數(shù),可以這樣做:
msg_list = pop_serv.list() # to list the messages msg_count = pop_serv.msg_count() # to get message count
處理完畢后,一定要記得關(guān)閉所有打開的連接。
pop_serv.quit()
從IMAP郵件服務(wù)器接收電子郵件可以用 imaplib 模塊與 IMAP 郵件服務(wù)器通信。
import imaplib, getpass my_imap = imaplib.IMAP4("imap.server.com") my_imap.login("myuser", getpass.getpass())
如果你的 IMAP 服務(wù)器上使用 SSL,則應(yīng)用 IMAP4_SSL 類。
要獲取電子郵件列表,需要先執(zhí)行查詢操作:
data = my_imap.search(None, "ALL")
然后,通過迭代 data 變量中的郵件索引獲取郵件內(nèi)容
msg = my_imap.fetch(email_id, "(RFC822)")
最后,不要忘記關(guān)閉連接:
my_imap.close() my_imap.logout()發(fā)送電子郵件
想要通過 SMTP 協(xié)議發(fā)送電子郵件。可以用 smtplib 。
import smtplib, getpass my_smtp = smtplib.SMTP(smtp.server.com") my_smtp.login("myuser", getpass.getpass())
如果在 SMTP服務(wù)器上使用SSL,則應(yīng)用 SMTP_SSL 類。
打開連接后,你可以這樣發(fā)送郵件:
from_addr = "me@example.com" to_addr = "you@example.com" msg = "From: me@example.com To: you@example.com Hello, this is a test message" my_smtp.sendmail(from_addr, to_addr, msg)抓取網(wǎng)頁
要與Web服務(wù)器進(jìn)行通信,需要用到 urllib.request 子模塊。
import urllib.request my_web = urllib.request.urlopen("https://www.google.com") print(my_web.read())提交 Web 表單
如果你想要提交 Web 表單,應(yīng)該向網(wǎng)頁發(fā)送POST請(qǐng)求。
import urllib.request my_data = b"Your Data Goes Here" my_req = urllib.request.Request("http://localhost", data=my_data,method="POST") my_frm = urllib.request.urlopen(my_req) print(my_frm.status)
另外還可以用 mechanize 或 urllib2 模塊,還有很多方法可以實(shí)現(xiàn)這個(gè)功能。
創(chuàng)建一個(gè)微型服務(wù)器socket 類支持偵聽連接請(qǐng)求。
import socket host = "" port = 3535 my_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) my_server.bind((host, port)) my_server.listen(1)
現(xiàn)在你可以接受這樣的連接請(qǐng)求:
addr = my_server.accept() print("Connected ... ", addr) data = conn.recv(1024)
最后不要忘記在操作完成后關(guān)閉連接
conn.close()
Python 中的線程并發(fā)運(yùn)行任務(wù)是非常有用的,Python 有一個(gè)名為 threading 的模塊,它包含一個(gè) Thread 類。
import threading def print_message(): print("The message got printed from a different thread") my_thread = threading.Thread(target=print_message) my_thread.start()
如果函數(shù)需要很長時(shí)間才能完成,可以用 is_alive()方法檢查它是否仍在運(yùn)行。
有時(shí)你的線程需要安全地訪問全局資源。這時(shí)候就需要用到鎖。
import threading num = 1 my_lock = threading.Lock() def my_func(): global num, my_lock my_lock.acquire() sum = num + 1 print(sum) my_lock.release() my_thread = threading.Thread(target=my_func) my_thread.start()使用樹莓派
使用樹莓派是一種價(jià)格便宜的單板電腦,可以在上面開發(fā)各種有趣的應(yīng)用。
可以用 Python 的 RPi.GPIO 模塊使樹莓派與外接的傳感器通信。
首先,在你的樹莓派中安裝包,如下所示:
$ sudo apt-get install python-dev python-rpi.gpio
然后你就能在Python腳本中使用它了。可以在樹莓派的 GPIO 總線上寫輸出:
import RPi.GPIO as GPIO GPIO.setmode(GPIO.BOARD) GPIO.setup(1, GPIO.OUT, initial=GPIO.LOW) GPIO.output(1, GPIO.HIGH)通過樹莓派的GPIO中讀取數(shù)據(jù)
你可以用 RPi.GPIO 模塊從 GPIO 接口讀取數(shù)據(jù),如下所示:
import RPi.GPIO RPi.GPIO.setup(1, GPIO.IN) if RPi.GPIO.input(1): print("Input was HIGH") else: print("Input was LOW")
以上只是 Python 的一小部分基礎(chǔ)知識(shí),還有很長的路需要走。
實(shí)際上,我們已經(jīng)介紹了一小部分Python,還有很多內(nèi)容需要介紹。將來會(huì)有更多的文章來幫助大家學(xué)習(xí) Python 這種充滿魅力的語言,請(qǐng)關(guān)注我。
12個(gè)令人驚嘆的CSS實(shí)驗(yàn)項(xiàng)目
必須要會(huì)的 50 個(gè)React 面試題
世界頂級(jí)公司的前端面試都問些什么
11 個(gè)最好的 JavaScript 動(dòng)態(tài)效果庫
CSS Flexbox 可視化手冊(cè)
從設(shè)計(jì)者的角度看 React
過節(jié)很無聊?還是用 JavaScript 寫一個(gè)腦力小游戲吧!
CSS粘性定位是怎樣工作的
一步步教你用HTML5 SVG實(shí)現(xiàn)動(dòng)畫效果
程序員30歲前月薪達(dá)不到30K,該何去何從
14個(gè)最好的 JavaScript 數(shù)據(jù)可視化庫
8 個(gè)給前端的頂級(jí) VS Code 擴(kuò)展插件
Node.js 多線程完全指南
把HTML轉(zhuǎn)成PDF的4個(gè)方案及實(shí)現(xiàn)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/43563.html
摘要:網(wǎng)上有這樣一張圖片,信息量很大,通常會(huì)被配上標(biāo)題一張圖讓你學(xué)會(huì)這張圖流傳甚廣,但我沒有找到明確的出處,圖片上附帶了的作者的信息,很有可能是原作者。為了方便閱讀,我把圖切割并標(biāo)注了一下完整圖片請(qǐng)進(jìn)入項(xiàng)目查看。 網(wǎng)上有這樣一張圖片,信息量很大,通常會(huì)被配上標(biāo)題 一張圖讓你學(xué)會(huì)Python : showImg(https://segmentfault.com/img/remote/14600...
前言 最近,我在群里答疑的時(shí)候,經(jīng)常碰到,小伙伴,再變量,縮進(jìn),參數(shù),方面使用錯(cuò)誤,導(dǎo)致程序運(yùn)行不來。 今天,打算自己寫一篇。 Python 變量作用域,和生命周期。 徹底弄懂變量該怎么使用。 知識(shí)點(diǎn) 變量的使用,有作用域區(qū)別,也有生命周期的區(qū)別。 1.變量作用域 局部變量 python能夠影響變量作用域的代碼段是def、class、lamda。 def scopeTest(): local...
摘要:你打了個(gè)響指然后開始致力于你想寫的棒極了的網(wǎng)絡(luò)應(yīng)用程序你寫完一些頁面最后你需要著手處理令人討厭的任務(wù)處理和驗(yàn)證表單輸入進(jìn)入開始但是為什么我需要另一個(gè)框架呢好吧一些網(wǎng)絡(luò)應(yīng)用程序框架采用數(shù)據(jù)庫模型和表單處理相結(jié)合的方法同時(shí)這對(duì)很基本的創(chuàng)建更新視 你打了個(gè)響指, 然后開始致力于你想寫的棒極了的 Python 網(wǎng)絡(luò)應(yīng)用程序. 你寫完一些頁面, 最后你需要著手處理令人討厭的任務(wù):處理和驗(yàn)證表單輸...
摘要:語言行為及特征狀態(tài)看不懂任何英語技術(shù),英語文檔,凡事沒有培訓(xùn)部在搞的,只有英文文檔的東西國內(nèi)一律沒大公司在用,都非主流,排斥英文文檔和新技術(shù),以及各種超出他學(xué)習(xí)能力范圍的技術(shù)。 在撰寫此文前首先必須申明的是本人不鄙視任何一種框架,也無意于挑起PHP框架間的戰(zhàn)爭(zhēng),更沒有貶低某個(gè)框架使用者的用意,本文純粹個(gè)人的看法。你可以認(rèn)為我無知也好,或者裝逼也好,請(qǐng)不要試著在任何情況下,隨便發(fā)起言語的...
摘要:內(nèi)容如下是我們準(zhǔn)備爬的初始頁這個(gè)是解析函數(shù),如果不特別指明的話,抓回來的頁面會(huì)由這個(gè)函數(shù)進(jìn)行解析。爬取多個(gè)頁面的原理相同,注意解析翻頁的地址設(shè)定終止條件指定好對(duì)應(yīng)的頁面解析函數(shù)即可。后面的數(shù)字表示的是優(yōu)先級(jí)。指明每兩個(gè)請(qǐng)求之間的間隔。 序 本文主要內(nèi)容:以最短的時(shí)間寫一個(gè)最簡單的爬蟲,可以抓取論壇的帖子標(biāo)題和帖子內(nèi)容。 本文受眾:沒寫過爬蟲的萌新。 入門 0.準(zhǔn)備工作 需要準(zhǔn)備的東西:...
閱讀 2932·2021-11-23 09:51
閱讀 3105·2021-11-15 11:39
閱讀 2987·2021-11-09 09:47
閱讀 2537·2019-08-30 13:49
閱讀 2118·2019-08-30 13:09
閱讀 3103·2019-08-29 16:10
閱讀 3510·2019-08-26 17:04
閱讀 997·2019-08-26 13:57