1. 程式人生 > >爬蟲完美繞過伺服器反爬檢查

爬蟲完美繞過伺服器反爬檢查

HostnameVerifier hv = new HostnameVerifier() {  
    public boolean verify(String urlHostName, SSLSession session) 
    {  
        System.out.println("Warning: URL Host: " + urlHostName + " vs. " + session.getPeerHost());  
        return true;  
    }  
}; 
trustAllHttpsCertificates();
HttpsURLConnection.setDefaultHostnameVerifier(hv);
// 插入取到的html程式碼
try { URL url = new URL(string); URLConnection connection = url.openConnection(); connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); connection.connect(); /*URLConnection conn = url.openConnection(); conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");*/
isr=new InputStreamReader(connection.getInputStream(),Charset.forName("UTF-8")); //isr=new InputStreamReader(conn.getInputStream(), "UTF-8"); bufr = new BufferedReader(isr); } catch (Exception e) { e.printStackTrace(); }

trustAllHttpsCertificates():

private void trustAllHttpsCertificates() {
        javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];  
        javax.net.ssl.TrustManager tm = new miTM();  
        trustAllCerts[0] = tm;  
        javax.net.ssl.SSLContext sc = null;
        try {
            sc = javax.net.ssl.SSLContext  
                    .getInstance("SSL");
        } catch (NoSuchAlgorithmException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }  
        try {
            sc.init(null, trustAllCerts, null);
        } catch (KeyManagementException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  
        javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc  
                .getSocketFactory());

    }
     static class miTM implements javax.net.ssl.TrustManager,  
     javax.net.ssl.X509TrustManager {  
 public java.security.cert.X509Certificate[] getAcceptedIssuers() {  
     return null;  
 }  

 public boolean isServerTrusted(  
         java.security.cert.X509Certificate[] certs) {  
     return true;  
 }  

 public boolean isClientTrusted(  
         java.security.cert.X509Certificate[] certs) {  
     return true;  
 }  

 public void checkServerTrusted(  
         java.security.cert.X509Certificate[] certs, String authType)  
         throws java.security.cert.CertificateException {  
     return;  
 }  

 public void checkClientTrusted(  
         java.security.cert.X509Certificate[] certs, String authType)  
         throws java.security.cert.CertificateException {  
     return;  
 }  
}

相關推薦

爬蟲完美繞過伺服器檢查

HostnameVerifier hv = new HostnameVerifier() { public boolean verify(String urlHostName, SSLSes

那些年繞過手段

不用 標註 百萬 正常 頁面 .com lan 急了 請求參數 筆者第一份工作就是以java工程師的名義寫爬蟲,不得不說第一份工作很重要啊,現在除了爬蟲不會幹別的,到現在已經幹了近5年了,期間經歷了不少與反爬策略的鬥爭。最近又耗時兩周成功搞定了某網站的反爬策略後,心裏有點莫

python網頁爬蟲開發之五-

build referer mac eee pac -o strip 不響應 win64 1、頭信息檢查是否頻繁相同 隨機產生一個headers, #user_agent 集合 user_agent_list = [ ‘Mozilla/5.0 (Windows N

用python取有道翻譯遇到,3分鐘繞過

利用有道翻譯的介面,自制一個翻譯程式 檢視其翻譯介面,發現post請求需要傳很多引數,而且經過測驗,satl,sigh屬於動態生成的,遇到這種問題怎麼辦?當然有時間的情況下,可以去研究這些引數在哪個響應中返回,或者怎麼構造,但是一般在工作中我們可能需求來了,不

Python爬蟲六:字型處理(貓眼+汽車之家)-2018.10

環境:Windows7 +Python3.6+Pycharm2017 目標:貓眼電影票房、汽車之家字型反爬的處理                   --------全部文章: 京東爬蟲 、鏈家爬蟲、美團爬蟲、微信公眾號爬蟲、字型反爬--------- 前言:字型反爬,

「Python3爬蟲」貓眼電影爬蟲(破解字符集)!

一、頁面分析 首先開啟 貓眼電影 ,然後點選一個正在熱播的電影(比如: 毒液 )。開啟開發者工具,點選左上角的箭頭,然後用滑鼠點選網頁上的票價,可以看到原始碼中顯示的不是數字,而是某些根本看不懂的字元,這是因為使用了font-face定義字符集,並通過unicode去對映展示,所以我們在網頁上看

利用python爬蟲成功突破12306機制「打包更新」

  12306自動搶票 已經到春運了,在這裡為大家奉上一個搶票的軟體,希望大家喜歡哦! 最近12306更新的比較快,而且反爬比較嚴重,研究了好長時間也不容易。 希望大家可以免費點個贊,隨手轉發一下,這裡的驗證碼。     會在本地當

爬蟲爬蟲的較量-圖片

前言 補充 感覺 成功 轉行 限制 壁紙 coo 網站 前言 在去年6月吧,剛轉行做爬蟲的時候,經常拿圖片網還有小說網練手,無意中發現一個壁紙網站叫做娟娟壁紙網,有好多高清壁紙(這不是廣告,哈哈) 當時是寫了全站爬取的代碼。以為自己大工告成的時候,結果剛運行,就發現爬出

這就是我的爬蟲基本功!使用代理 IP和繞過機制!

    使用代理 IP 之前我瞭解到的使用代理 IP 的方法,一般都是提前從一些免費的代理網站上爬取免費代理,存在本地或者資料庫中,使用的時候再進行讀取。 但是這樣做有個小問題就是,免費的代理 IP 存活時間都特別短暫,從幾十秒到幾十分鐘不等,我之

pathon爬蟲中簡單的請求頭fake_useragent庫,處理問題

安裝 pip3 install fake_useragent 各瀏覽器User-Agent的值 from fake_useragent import UserAgent ua = UserAgent() # ie瀏覽器的user agent print(ua.ie) Mozill

Python:爬蟲例項2:取貓眼電影——破解字型

 字型反爬 字型反爬也就是自定義字型反爬,通過呼叫自定義的字型檔案來渲染網頁中的文字,而網頁中的文字不再是文字,而是相應的字型編碼,通過複製或者簡單的採集是無法採集到編碼後的文字內容的。 現在貌似不少網站都有采用這種反爬機制,我們通過貓眼的實際情況來解釋一下。   下圖的是貓眼網頁

用python擷取螢幕特定位置(具體class)的圖片(多用於爬蟲時遇到的驗證碼擷取,再進行

比如在爬蟲時遇到頁面顯示驗證碼驗證環節,需要先擷取到驗證碼,再識別、輸入驗證碼,完成識別過程。 以爬取zhipin.com 為例。遇到的反爬頁面顯示如下: 擷取思路: 1,用selenium開啟該反爬的頁面,截全屏 2,定位到驗證碼處,截圖儲存即可 程式碼如下: fr

爬蟲之字型(一)起點網

今天為大家帶來的是爬蟲之反爬措施中字型反爬的一個案例,起點網。具體來看下面的分析與程式碼。 首先參考的網站:https://www.qidian.com/all?&page=1 從網站中可以觀察到,它的反爬是這樣的: 再從網頁原始碼中觀察,發現又是這樣的:

爬蟲提高 - 1 - 常見的手段和解決思路

1 明確反反爬的主要思路 反反爬的主要思路就是:儘可能的去模擬瀏覽器,瀏覽器在如何操作,程式碼中就如何去實現。瀏覽器先請求了地址url1,保留了cookie在本地,之後請求地址url2,帶上了之前的cookie,程式碼中也可以這樣去實現。 很多時候,爬蟲中攜帶的headers欄位,coo

爬蟲還不夠?那再學學

爬蟲與反爬蟲,這相愛相殺的一對,在現在你會爬蟲是不夠的,你還得會反爬蟲。 為 Python 平反 首先是爬蟲,爬蟲教程你到處都可以搜的到,大部分是 Python 寫的。 我曾經在一篇文章提到過:用 Python 寫的爬蟲是最薄弱的,因為天生並不適合破解反爬蟲邏輯,因為反

京東商品列表解析+下拉url介面構造(爬蟲)

由於京東運用ajax載入頁面,正常的爬取頁面不能獲得全部頁面內容,之前做過用Scrapy + Selenium實現京東商品列表摘要資訊的爬取,今天又研究了一下其下拉後接口url的構造,終於發現了其中的奧祕! 經過分析可以發現:第二次截獲的ur有三處需要構造

爬蟲案例|從攻克機制到地理資訊視覺化!

  上圖是上海醫療服務資訊便民查詢系統網站(http://www.soyi.sh.cn/)上公佈的醫療機構位置的熱力圖。 本案例先從該網站抓取全部醫療機構的座標資訊,然後用免費的BDP個人版(http://www.bdp.cn)線上做圖。爬取資料時,我找到了資料的API介面,

伺服器爬蟲攻略:Apache/Nginx/PHP禁止某些User Agent抓

我們都知道網路上的爬蟲非常多,有對網站收錄有益的,比如百度蜘蛛(Baiduspider),也有不但不遵守robots規則對伺服器造成壓力,還不能為網站帶來流量的無用爬蟲,比如宜搜蜘蛛(YisouSpider)。最近張戈發現nginx日誌中出現了好多宜搜等垃圾的抓取記錄,於是整

天天聊爬蟲,今天我們來聊聊

    反爬蟲的幾重措施 1.IP限制 如果是個人編寫的爬蟲,IP可能是固定的,那麼發現某個IP請求過於頻繁並且短時間內訪問大量的頁面,有爬蟲的嫌疑,作為網站的管理或者運維人員,你可能就得想辦法禁止這個IP地址訪問你的網頁了。那麼也就是說這個IP發出的請求在

利器--設定代理伺服器

1 import urllib.request 2 3 # 構建兩個代理Handler,一個有代理IP,一個沒有 4 httpproxy_handler = urllib.request.ProxyHandler({"http": "211.141.111.114:61395"}) 5 nullp