注意:第31題1分,其他題均每題3分。
1,了解哪些基於爬蟲相關的模組?
-網路請求:urllib,requests,aiohttp-資料解析:re,xpath,bs4,pyquery
-selenium
- js逆向:pyexcjs
2,常見的資料解析方式?
- re、lxml、bs4
3,列舉在爬蟲過程中遇到的哪些比較難的反爬機制?
-動態載入的資料-動態變化的請求引數
-js加密
-**- cookie
4,簡述如何抓取動態載入資料?
-基於抓包工具進行全域性搜尋- 如果動態載入的資料是密文,則全域性搜尋是搜尋不到
5,移動端資料如何抓取?
6,抓取過哪些型別的資料,量級多少?
-電商,醫療器械,彩妝,新聞資訊,金融,體育賽事(參考hao123**)-量級:
- 最好不要超過100w。自己計算(頁數,一頁顯示多少資料)
7,了解哪些爬蟲框架?
- scrapy,pyspider
8,談談對scrapy的了解?
-功能:資料解析,持久化儲存,深度爬取,分布式,關鍵件- 五大核心元件的作用和工作流程
9,如何解析出攜帶標籤的區域性頁面資料?
- bs4
10,scrapy核心元件?
11,scrapy中介軟體的應用?
-作用:攔截請求和響應- 攔截請求:設定**
12,如何實現全站資料爬取?
- 基於手動請求傳送+遞迴解析- 基於crwalspider(linkextractor,rule)
13,如何檢測**資料更新?
- 增量式爬蟲
14,分布式爬蟲實現原理?
- 基於scrapy-redis實現的分布式。
15,如何提公升爬取資料的效率(非同步爬蟲)
-使用框架-執行緒池,多工的非同步協程
- 分布式
16,列舉你接觸的反爬機制?
ua檢測、封ip、js混淆、引數加密、資料加密,動態載入
17,什麼是深度優先和廣度優先(優劣)
-預設情況下scrapy是深度優先。-深度優先:占用空間大,但是執行速度快
- 廣度優先:占用空間少,執行速度慢
18,scrapy如何實現持久化儲存
-解析資料-將解析的資料封裝到item中
-將item提交管道
-在管道中持久化儲存
- 開啟管道
19,談談對crawlspider的理解,如何使用其進行深度爬取
- 鏈結提取器&規則解析器
20,如何實現資料清洗?
-清洗空值(缺失值)-將空對應的行資料刪除.dropna
-使用近鄰值填充空值.fillna
-清洗重複值
-重複的行資料刪除:drop_duplicates()
-清洗異常值
- 一定要有乙個判定異常值的條件
21,了解過機器學習嗎?
-特徵工程-特徵預處理
-歸一化,標準化
-特徵值化
-將非數值型的資料轉換成數值型的資料
-降維-sklean框架
-線性回歸,knn,貝葉斯
-補充:
1.樹模型:決策樹
2.整合模型:隨機森林
-深度學習框架:
- tensorflow
22,在爬蟲中為什麼需要是用selenium?selenium和爬蟲之間的關聯麼?
selenium和爬蟲之間的關聯是什麼?-爬取動態載入的資料
- 模擬登入
23,列舉你所熟知的selenium模組中的常用方法及其作用
24,解釋在多工非同步協程中事件迴圈(loop)的作用是什麼?
- 可以將註冊在其內部的任務物件表示的特定操作進行非同步執行
25,多工非同步協程是如何實現非同步的?
-乙個任務物件就是乙個協程也是一組特定的操作,將任務物件註冊到事件迴圈中,就可以非同步的執行每一組特定的操作- wait方法,await關鍵字
26,驗證碼如何處理?
- 打碼平台
27,scrapy 和 scrapy-redis 有什麼區別?
- scrapy-redis這個元件可以給scrapy框架提供共享的管道和排程器實現分布式爬蟲
28,說一說開啟瀏覽器訪問 www.baidu.com
獲取到結果,整個流程。
1.網域名稱解析成ip2.與目的主機進行tcp連線(三次握手)
3.傳送和接收資料
29,列出你知道 header 的內容以及資訊
- user-agent- connection
30,簡述scrapy的去重原理?
需要將dont_filter設定為false開啟去重,預設是false;對於每乙個url的請求,排程器都會根據請求的相關資訊加密得到乙個指紋資訊,並且將指紋資訊和set()集合中得指紋資訊進行比對,如果set()集合中已經存在這個資料,就不在將這個request放入佇列中。如果set()集合中沒有,就將這個request物件放入佇列中,等待被排程。
31,下列敘述中錯誤的是:(1分)
a.棧是線性結構b.佇列是線性結構32,簡述前序、中序、後續遍歷?c.線性列表是線性結構d.二叉樹是線性結構
跟左右左跟右左右跟
33,寫**:實現乙個氣泡排序。
defsort(alist):
length =len(alist)
for j in range(length-1)
for i in range(length-1-j):
if alist[i] > alist[i+1]:
alist[i],alist[i+1] = alist[i+1],alist[i]
return
alist
alist = [3,8,5,2,0,7,6]
print(sort(alist))
34,寫**:實現乙個快速排序。
defsort(alist,left,right):
low =left
hight =right
if low return
mid =alist[low]
while low while low if alist[high] alist[low] =alist[high]
break
else
: high -= 1
while low if alist[low] low += 1
else
: alist[high] =alist[low]
break
if low ==high:
alist[low] =mid
sort(alist,left,low-1)
sort(alist,high+1,right)
return alist
1,列舉常見用的git命令?
2,你們公司/團隊用怎麼做的協同開發?
3,公司如何做**review?誰來做?
4,線上**如果出現bug如何解決?
5,git rebase的作用?
PHP面試題(附答案)
1.在php中,當前指令碼的名稱 不包括路徑和查詢字串 記錄在預定義變數 1 中 而鏈結到當前頁面的的前一頁面url記錄在預定義變數 2 中 script name也可以 其它的見參考手冊 語言參考 變數 預定義變數 當前執行指令碼的絕對路徑名 d inetpub wwwroot php est.p...
kafka面試題 附答案
1.什麼是kafka kafka是分布式發布 訂閱訊息系統,它最初是由linkedin公司開發的,之後成為apache專案的一部分,kafka是乙個分布式,可劃分的,冗餘備份的永續性的日誌服務,它主要用於處理流式資料。2.為什麼要使用 kafka?為什麼要使用訊息佇列?緩衝和削峰 上游資料時有突發流...
Python 前端面試題(附答案)
為h1標籤定義樣式表 字型紅色 14畫素大大小小,內邊距4畫素,分別寫出三個層級的寫法,指出三種寫法的優先權。用js設定的值為 admin 請簡述前端技術中的id和class 的區別?在乙個網頁裡id只能使用一次。當然即使乙個id在乙個網頁內被使用多次,其css樣式仍然可以實現生效,但是一般規定w3...