python常見問題

2021-10-12 06:51:40 字數 1176 閱讀 8596

第乙個問題

js加密如何突破

(1) 熟練掌握chrome的開發者工具的各個功能,elements, network,source

(2) 認真觀察,善於思考。network檢視載入流程,找可疑的xhr請求,設定xhr斷點,通過call stack 回溯js執行過程,邊回溯邊檢視上下文**。能讀懂js,知道js的相關知識,比如js裡面的window變數。

(3) 以上是通過debug js找到js加密解密的**,然後通過python重新實現,這個過程很長,可能耗費你幾天的時間,一旦**改變一下js演算法你的python實現就不能用了。

(4) 用selenium可簡單突破,並且**隨便該都無所謂。唯一遺憾的是,selenium的執行效率較差。但是,作為乙個能用js加密來保護資料的**,單價的執行效率應該足以滿足**的訪問頻率限制。這時候,更多的思考是如何增加資源(ip、賬號)來提高抓取效率。

第二個問題

多執行緒、協程,多程序的選擇

(1)爬蟲是io密集型任務,大部分時間花在網路訪問上,所以多程序不適合網路爬蟲,而多執行緒、非同步io協程更適合,而非同步io是最適合的,它相比多執行緒,協程間的切換代價更小,我們提倡使用非同步io而非多執行緒。非同步io的模組主要是:aysncio, aiohttp, aiomysql 等。

(2)網頁爬下來後從中提取想要的資料是cpu密集型的,這時候可以用多程序併發提取。

(3)我們推薦的爬蟲策略是,爬蟲只管爬,把爬下來的html儲存起來,存到資料庫。然後單獨寫提取資料的提取器,單獨執行提取器。好處是,提取不影響爬取,爬的效率更高,並且提取程式可以隨時修改,有新的提取需求時不需要重新抓取。比如,最初寫爬蟲時只想提取網頁中的兩項資料,執行一段時間後,發現另外3項資料也很有用,如果儲存了html,只需改改提取器重新跑一遍就好了。

第三個問題

如果想要保留加粗或者原始位置,只能通過挖掘規律再寫正規表示式來針對性處理嗎?網頁資料提取主要兩種方法:正規表示式,xpath。通過xpath可以獲得某個html標籤節點。比如,一篇blog網頁,它的主體內容都在某個標籤裡面,可能是某個div。用xpath得到這個div,轉換為html,就是包含了格式及其的部分,你儲存這段html**而非純文字就好了。

第五個問題

爬蟲的部署問題,在公司是不是分布式爬蟲系統比較多會涉及部署問題爬蟲的部署,不一定是分布式的。大規模的爬蟲,突破了目標**限制的爬蟲才會涉及到分布式,分布式的好處是抓取速度提高,但是管理會比較複雜。

python常見問題

1.讓指令碼像普通程式一樣執行 先在指令碼的首行加上 usr bin env python,然後 chmod a x hello.py,之後就能這樣執行 了 hello.py,如果不行的話,這樣試試 hello.py 也可以去掉.py副檔名,讓它看起來更像個普通的程式.2.python類的靜態屬性和...

python常見問題

1 安裝檔案 按預設路徑安裝 2 python環境變數的配置 3 命令列驗證 如圖 即為安裝成功 4 setuptools python的增強工具 命令列工具cd切換到setuptools的目錄,找到setup.py,然後輸入python setup.py install,執行即可 如圖即安裝成功 ...

python 常見問題

需要新增外掛程式支援 pip 安裝報錯 is not a supported wheel on this platform 解決辦法 檢視pip支援版本 進入python shell命令 import pip print pip.pep425tags.get supported 可以獲取到pip支援...