R查源碼
① 如何使用python或R抓取網頁被隱藏的源代碼
隱藏的源代碼?不知道你指的是什麼?我的理解有兩種,一是不在前段顯示,但是查看源代碼時有,二是,非同步載入的內容在前端和源代碼中均看不到,第一種很容易解決,想必你指的時第二種,解決方法有三種:
模擬瀏覽器,動態獲取,可以使用大殺器selenium工具
使用這種方法可以實現只要能看到就能抓取到,如滑鼠滑過,非同步載入等,因為他的行為可以與瀏覽器一模一樣,但是這種方式的效率卻是最低的,一般不到實在沒有辦法的時候不推薦使用。
執行js代碼
在python中執行非同步載入的js代碼,獲得一些諸如滑鼠滑過,下拉載入更多等,但是現在的網站中都有非常多的js代碼,要找到需要執行的目標js代碼時非常困難和耗時的,此外python對js的兼容性也不是很好,也不推薦使用。
找到非同步載入的json文件,最常用,最方便,最好用的方法,這是我平常抓取動態非同步載入網站時最常用的方法,可以解決我99%的問題。具體的使用方法是打開瀏覽器的開發者工具,轉到network選項,之後重新載入網頁,在network中的列表中找到載入過程中載入的需要動態非同步載入的json文件,以京東為例,如圖,第一張找到的是非同步載入的庫存信息的json文件,第二招找到的是非同步載入的評論信息的json文件:
具體更詳細的方法可以google或網路
② 我想知道如何查看python的源代碼
查看腳本的話(python中部分函數是直接用C語言嵌入的,要在官網上搜C源碼),可以使用Pycharm,或者其他IDLE,比如我想查看python中TensorFlow包的Session函數:
任意在pycharm內的一個.py文件中,輸入這個函數
import tensorFlow as tf #載入包並命名為tf
tf.Session()
然後按住Ctrl按鈕,左鍵單擊Session,就自動打開了對應.py文件
另外一種方法是直接在python本地庫中找對應的.py文件,(可以用help函數先搜索)
③ 怎麼才能查看R語言某個包某函數源碼
如果是程序包中自己帶的函數,可用以下操作:
https://cran.r-project.org/
點擊左側Packages
點擊中間Table of available packages, sorted by date of publication鏈接,進入包的列表界面
ctrl+F組合鍵在網頁中搜索你關心的R包,例如包WGCNA,點擊進入此R包主界面
點擊Downloads下面的Packagesource:
WGCNA_1.51.tar.gz
如果是在bioconctor中的包,可以在bioconctor官網中搜索此R包,進入此包界面,下載.tar.gz的這個文件,尋找方法如上.