Python 爬蟲面試總結分享

2021-09-01 12:43:42 字數 2987 閱讀 9861

q1. 你遇到的比較難的爬蟲問題?

q2. 請求一定頁數後就會被封如何應對?

a:這個時候,我們會估算一下,多少頁之後會封,然後換cookie繼續。
q3. 有的時候請求到空資料,

a: 這個問題已經發現我是爬蟲了,

①看看我的**,是不是過期了,

②看看cookie是不是過期了,

③看看是不是有referer欄位反爬,

④找不到規律了,源** ajax請求都不是,那就可以開始看js了,找到具體js如何執行,然後使用js2py,直接把js**轉換為python程式去執行,解決這個問題

​q4. 給你乙個專案你要怎麼爬(考你爬蟲思路)

q5. 爬蟲網頁分析流程

q6. 如果你的ip一直被封,怎麼辦?

1. 轉用高密**

2. 實在不行使用真實ip

q7. 一天能跑多少資料?

這個跟網速、頻寬、電腦核數都有關係,目前我們爬取了全國的資料大概有70萬套**,在web上展示北京的有20萬左右,跑了乙個星期左右,寫字樓**大概爬取了十幾個
q8. 手機爬蟲用過嗎?

fiddler 抓包
q1. 多執行緒,多程序

q2. linux命令

q3. 專案用的是什麼協議

q5. 前端會是嗎?

q6. 程式開幾個程序?

nginx負責負載均衡,uwsgi負責多程序執行,開多少程序,uwsgi.ini配置檔案有設定,一般與cpu核數一樣,用做伺服器的核心數一般都大於等於8核
q1. 物件導向的過載 和覆蓋 的區別

python 當中沒有過載這個概念!

其他語言中有 過載的意思就是說 定義兩個同名的函式 第乙個函式需要乙個引數,第二個函式需要兩個引數。

在python 當中是不能夠這樣定義的!

因為你定義了第乙個之後 再定義第二個同名方法體就會覆蓋掉前面的, 而對於其他的語言的話是可以同時定義兩個方法名相同的函式的,只需要引數那邊不一樣就行了. 在呼叫的時候根據你傳的引數 編譯器會自動識別你想要呼叫哪乙個函式.

過載和覆蓋的區別:

過載:(1)乙個類中定義多個同名方法。不同的引數列表(引數個數、引數型別、引數順序);

(2)不能通過方法的訪問許可權、返回值型別和丟擲異常型別進行過載;

覆蓋:(1)派生類方法覆蓋基類方法。派生類的方法必須要基類的方法有相同方法名和引數;

(2) 派生類的方法返回值型別必須和基類方法的返回值型別相同;

(3) 派生類方法的丟擲異常型別必須和基類方法的丟擲異常型別一致;

(4) 基類的被覆蓋的方法不能為private,否則子類方法只是定義了乙個方法,並沒有實現覆蓋。

q2. 程式如何監聽 80埠?

切換root使用者

更改nginx配置檔案的server listen埠號為80

socket.listen(80)

netstat -ntpl 檢視監聽埠

我們可以在8080埠和80埠之間做乙個nat轉化

/sbin/iptables -t nat -i prerouting -p tcp --dport 80 -j redirect --to-port 8080

cap_net_bind_service設定

q3. 堆和棧的區別

棧區域: 系統自動分配. 儲存區域性變數 如:int num=10, int* p=&num。 num 與 p 都儲存在棧區域

堆區域: 允許程式設計師手動的從堆申請空間來使用,要主動釋放。除非程式結束 如:int 4, float 4…. malloc,calloc …

bss段區域: 儲存未初始化的全域性變數/靜態變數,因程式執行時其全域性/靜態變數都沒有初始化

資料段/常量區:儲存已初始化的全域性變數/靜態變數,與常量資料, 在main 外定義的變數

**段區域: 儲存程式**/指令

申請效率的比較:

棧由系統自動分配,速度較快。但程式設計師是無法控制的。

堆是由new分配的記憶體,一般速度比較慢,而且容易產生記憶體碎片,不過用起來最方便.

棧: 元素有先進後出順序的線性結構。可以考慮疊盤子,只能從最上面拿盤子,也只能往最上面放盤子。那這個盤子序列、包括上面兩條規則就構成了乙個棧

堆: 滿足一定限制的樹型結構(比如父親節點的權值要大於兒子節點的權值,左兒子又要大於右兒子)。

其他阿里面試問題:

q4. 筆試三道題:二分法,快排,完全二叉樹,寫**。

q5. redis五種基本資料型別的底層實現

q6. 還問資料庫的查詢優化。

q1. 說一下scrapy框架

q2. 你們ip池有多大

1000,買的
q3. 如何維護ip池

有乙個程式,取出ip進行請求測試,看響應狀態碼,請求失敗的剔除
q4. selenium什麼時候使用的

通過js實現了資料的加密,通過js生成了請求引數
q6. 資料庫

q7. 網頁分析流程

q8. 谷歌有乙個抓包的工具知道嗎

q9. celery什麼時候用過,原理是什麼

在做web的時候,用於傳送簡訊驗證碼,郵箱驗證的時候
個人相關:

q10. 自己的規劃

q11. 未來是注重python 還是要往分析方面走

q12. 為什麼來杭州

q13. 學習途徑

q14. 原來公司相關:

q15. 原來公司團隊大小

q16. 原來公司是做什麼的

q17. 薪資情況

q18. 為什麼小公司沒有離開

q19. 找公司最看重什麼?

Python爬蟲分享

一 python簡介 二 python爬蟲 三 python爬蟲例項 四 問答互動 python語言排行 github爬蟲排行 python為什麼這麼火?1989年,guido van rossum創立了python語言。現在,他在google工作。物件導向的高層語言 解釋性 強大的第三方庫 爬蟲,...

爬蟲面試python

1.什麼是爬蟲 2.什麼是url 3.scrapy的優缺點 缺點 基於 python 的爬蟲框架,擴充套件性比較差,不夠靈活.4.http和https的區別 5.https如何進行資料傳輸 6.get和post請求的區別 get請求和post請求都是tcp鏈結,本質上並無區別,但是由於http的規定...

Linux面試總結分享

假如說職場如戰場,那面試就能算得上是在戰場揚名立萬的第一步。這一步直接影響到你在之後的日子裡會接觸到什麼樣的人,要做什麼樣的事。話說,跟一群幹大事的人才能幹成大事。如果你被應聘到一家好公司,有比較好的產品,有好的技術團隊,那麼你在技術方面發展可能很快。反之,如果你被應聘到一家 糞坑 公司,沒有團隊建...