這篇文章主要講解了“Python的高頻面試題有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python的高頻面試題有哪些”吧!

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),鎮(zhèn)雄網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:鎮(zhèn)雄等地區(qū)。鎮(zhèn)雄做網(wǎng)站價(jià)格咨詢:028-86922220
一. 如何提高爬取效率?
爬蟲下載慢主要原因是阻塞等待發(fā)往網(wǎng)站的請(qǐng)求和網(wǎng)站返回
1,采用異步與多線程,擴(kuò)大電腦的cpu利用率; 2,采用消息隊(duì)列模式 3,提高帶寬
二. 說說什么是爬蟲協(xié)議?
Robots協(xié)議(也稱為爬蟲協(xié)議、爬蟲規(guī)則、機(jī)器人協(xié)議等)也就是robots.txt,網(wǎng)站通過robots協(xié)議告訴搜索引擎哪些頁面可以抓取,哪些頁面不能抓取。
Robots協(xié)議是網(wǎng)站國(guó)際互聯(lián)網(wǎng)界通行的道德規(guī)范,其目的是保護(hù)網(wǎng)站數(shù)據(jù)和敏感信息、確保用戶個(gè)人信息和隱私不被侵犯。因其不是命令,故需要搜索引擎自覺遵守。
三. 如果對(duì)方網(wǎng)站反爬取,封IP了怎么辦?
放慢抓取熟速度,減小對(duì)目標(biāo)網(wǎng)站造成的壓力,但是這樣會(huì)減少單位時(shí)間內(nèi)的數(shù)據(jù)抓取量
使用代理IP(免費(fèi)的可能不穩(wěn)定,收費(fèi)的可能不劃算)
四. 有一個(gè)jsonline格式的文件file
def get_lines():
with open('file.txt','rb') as f:
return f.readlines()
if __name__ == '__main__':
for e in get_lines():
process(e) # 處理每一行數(shù)據(jù)現(xiàn)在要處理一個(gè)大小為10G的文件,但是內(nèi)存只有4G,如果在只修改get_lines 函數(shù)而其他代碼保持不變的情況下,應(yīng)該如何實(shí)現(xiàn)?需要考慮的問題都有那些?
def get_lines():
with open('file.txt','rb') as f:
for i in f:
yield iPandaaaa906提供的方法
from mmap import mmap
def get_lines(fp):
with open(fp,"r+") as f:
m = mmap(f.fileno(), 0)
tmp = 0
for i, char in enumerate(m):
if char==b"\n":
yield m[tmp:i+1].decode()
tmp = i+1
if __name__=="__main__":
for i in get_lines("fp_some_huge_file"):
print(i)要考慮的問題有:內(nèi)存只有4G無法一次性讀入10G文件,需要分批讀入分批讀入數(shù)據(jù)要記錄每次讀入數(shù)據(jù)的位置。分批每次讀取數(shù)據(jù)的大小,太小會(huì)在讀取操作花費(fèi)過多時(shí)間。
五. 補(bǔ)充缺失的代碼
def print_directory_contents(sPath): """ 這個(gè)函數(shù)接收文件夾的名稱作為輸入?yún)?shù) 返回該文件夾中文件的路徑 以及其包含文件夾中文件的路徑 """ import os for s_child in os.listdir(s_path): s_child_path = os.path.join(s_path, s_child) if os.path.isdir(s_child_path): print_directory_contents(s_child_path) else: print(s_child_path)
六. 輸入日期, 判斷這一天是這一年的第幾天?
import datetime
def dayofyear():
year = input("請(qǐng)輸入年份: ")
month = input("請(qǐng)輸入月份: ")
day = input("請(qǐng)輸入天: ")
date1 = datetime.date(year=int(year),month=int(month),day=int(day))
date2 = datetime.date(year=int(year),month=1,day=1)
return (date1-date2).days+1七. 打亂一個(gè)排好序的list對(duì)象alist?
import random alist = [1,2,3,4,5] random.shuffle(alist) print(alist)
八. 現(xiàn)有字典 d= {‘a(chǎn)’:24,‘g’:52,‘i’:12,‘k’:33}請(qǐng)按value值進(jìn)行排序?
sorted(d.items(),key=lambda x:x[1])
九. 字典推導(dǎo)式
d = {key:value for (key,value) in iterable}十. 請(qǐng)反轉(zhuǎn)字符串 “aStr”?
print("aStr"[::-1])感謝各位的閱讀,以上就是“Python的高頻面試題有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Python的高頻面試題有哪些這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
當(dāng)前題目:Python的高頻面試題有哪些
分享地址:http://chinadenli.net/article46/gdjphg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、微信小程序、關(guān)鍵詞優(yōu)化、定制網(wǎng)站、商城網(wǎng)站、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)