摘要:隨后,為了保險,重啟,火狐瀏覽器也重啟一下,然后開始抓的包,此時你會發現你的連接并不安全等類似提示已經消失,并且已經能夠抓包了。
封裝模塊
#!/usr/bin/env?python #?-*-?coding:?utf-8?-*- import?urllib from?urllib?import?request import?json import?random import?re import?urllib.error def?hq_html(hq_url): ????""" ????hq_html()封裝的爬蟲函數,自動啟用了用戶代理和ip代理 ????接收一個參數url,要爬取頁面的url,返回html源碼 ????""" ????def?yh_dl():????#創建用戶代理池 ????????yhdl?=?[ ????????????"Mozilla/5.0?(Windows;?U;?Windows?NT?6.1;?en-us)?AppleWebKit/534.50?(KHTML,?like?Gecko)?Version/5.1?Safari/534.50", ????????????"Mozilla/5.0?(compatible;?MSIE?9.0;?Windows?NT?6.1;?Trident/5.0", ????????????"Mozilla/4.0?(compatible;?MSIE?8.0;?Windows?NT?6.0;?Trident/4.0)", ????????????"Mozilla/5.0?(Macintosh;?Intel?Mac?OS?X?10.6;?rv:2.0.1)?Gecko/20100101?Firefox/4.0.1", ????????????"Mozilla/5.0?(Windows?NT?6.1;?rv:2.0.1)?Gecko/20100101?Firefox/4.0.1", ????????????"Opera/9.80?(Macintosh;?Intel?Mac?OS?X?10.6.8;?U;?en)?Presto/2.8.131?Version/11.11", ????????????"Opera/9.80?(Windows?NT?6.1;?U;?en)?Presto/2.8.131?Version/11.11", ????????????"Mozilla/4.0?(compatible;?MSIE?7.0;?Windows?NT?5.1;?Maxthon?2.0)", ????????????"Mozilla/4.0?(compatible;?MSIE?7.0;?Windows?NT?5.1;?TencentTraveler?4.0)", ????????????"Mozilla/4.0?(compatible;?MSIE?7.0;?Windows?NT?5.1)", ????????????"Mozilla/4.0?(compatible;?MSIE?7.0;?Windows?NT?5.1;?The?World)", ????????????"Mozilla/4.0?(compatible;?MSIE?7.0;?Windows?NT?5.1;?360SE)", ????????????"Mozilla/4.0?(compatible;?MSIE?7.0;?Windows?NT?5.1;?Avant?Browser)", ????????????"Mozilla/4.0?(compatible;?MSIE?7.0;?Windows?NT?5.1)", ????????????"Mozilla/5.0?(iPhone;?U;?CPU?iPhone?OS?4_3_3?like?Mac?OS?X;?en-us)?AppleWebKit/533.17.9?(KHTML,?like?Gecko)?Version/5.0.2?Mobile/8J2?Safari/6533.18.5", ????????????"User-Agent:Mozilla/5.0?(iPod;?U;?CPU?iPhone?OS?4_3_3?like?Mac?OS?X;?en-us)?AppleWebKit/533.17.9?(KHTML,?like?Gecko)?Version/5.0.2?Mobile/8J2?Safari/6533.18.5", ????????????"Mozilla/5.0?(iPad;?U;?CPU?OS?4_3_3?like?Mac?OS?X;?en-us)?AppleWebKit/533.17.9?(KHTML,?like?Gecko)?Version/5.0.2?Mobile/8J2?Safari/6533.18.5", ????????????"Mozilla/5.0?(Linux;?U;?Android?2.3.7;?en-us;?Nexus?One?Build/FRF91)?AppleWebKit/533.1?(KHTML,?like?Gecko)?Version/4.0?Mobile?Safari/533.1", ????????????"Opera/9.80?(Android?2.3.4;?Linux;?Opera?Mobi/build-1107180945;?U;?en-GB)?Presto/2.8.149?Version/11.10", ????????????"Mozilla/5.0?(Linux;?U;?Android?3.0;?en-us;?Xoom?Build/HRI39)?AppleWebKit/534.13?(KHTML,?like?Gecko)?Version/4.0?Safari/534.13", ????????????"Mozilla/5.0?(BlackBerry;?U;?BlackBerry?9800;?en)?AppleWebKit/534.1+?(KHTML,?like?Gecko)?Version/6.0.0.337?Mobile?Safari/534.1+", ????????????"Mozilla/5.0?(compatible;?MSIE?9.0;?Windows?Phone?OS?7.5;?Trident/5.0;?IEMobile/9.0;?HTC;?Titan)", ????????????"UCWEB7.0.2.37/28/999", ????????????"NOKIA5700/?UCWEB7.0.2.37/28/999", ????????????"Openwave/?UCWEB7.0.2.37/28/999", ????????????"Mozilla/4.0?(compatible;?MSIE?6.0;?)?Opera/UCWEB7.0.2.37/28/999" ????????????] ????????thisua?=?random.choice(yhdl)????????????????????#隨機獲取代理信息 ????????headers?=?("User-Agent",thisua)?????????????????#拼接報頭信息 ????????opener?=?urllib.request.build_opener()??????????#創建請求對象 ????????opener.addheaders=[headers]?????????????????????#添加報頭到請求對象 ????????urllib.request.install_opener(opener)???????????#將報頭信息設置為全局,urlopen()方法請求時也會自動添加報頭 ????def?dai_li_ip(hq_url):????#創建ip代理池 ????????url?=?"http://http-webapi.zhimaruanjian.com/getip?num=1&type=2&pro=&city=0&yys=0&port=11&time=1&ts=0&ys=0&cs=0&lb=1&sb=0&pb=4&mr=1" ????????if?url: ????????????data?=?urllib.request.urlopen(url).read().decode("utf-8") ????????????data2?=?json.loads(data)??#?將字符串還原它本來的數據類型 ????????????#?print(data2["data"][0]) ????????????ip?=?str(data2["data"][0]["ip"]) ????????????dkou?=?str(data2["data"][0]["port"]) ????????????zh_ip?=?ip?+?":"?+?dkou ????????????pat?=?"(w*):w*" ????????????rst?=?re.compile(pat).findall(hq_url)??#正則匹配獲取是http協議還是https協議 ????????????rst2?=?rst[0] ????????????proxy?=?urllib.request.ProxyHandler({rst2:?zh_ip})??#?格式化IP,注意,第一個參數,請求目標可能是http或者https,對應設置 ????????????opener?=?urllib.request.build_opener(proxy,?urllib.request.HTTPHandler)??#?初始化IP ????????????urllib.request.install_opener(opener)??#?將代理IP設置成全局,當使用urlopen()請求時自動使用代理IP ????????else: ????????????pass ????#請求 ????try: ????????dai_li_ip(hq_url)?#執行代理IP函數 ????????yh_dl()?????#執行用戶代理池函數 ????????data?=?urllib.request.urlopen(hq_url).read().decode("utf-8") ????????return?data ????except?urllib.error.URLError?as?e:??#?如果出現錯誤 ????????if?hasattr(e,?"code"):??#?如果有錯誤代碼 ????????????#?print(e.code)??#?打印錯誤代碼 ????????????pass ????????if?hasattr(e,?"reason"):??#?如果有錯誤信息 ????????????#?print(e.reason)??#?打印錯誤信息 ????????????pass #?a?=?hq_html("http://www.baid.com/") #?print(a)
實戰爬取搜狗微信公眾號
#!/usr/bin/env?python #?-*-?coding:?utf-8?-*- import?urllib.request import?fzhpach import?re #抓取搜狗微信公眾號 #http://weixin.sogou.com/weixin?type=1&query=php&page=1 #type=1表示顯示公眾號 #type=2表示抓取文章 #query=關鍵詞 #page=頁碼 gjc?=?"火鍋" gjc?=?urllib.request.quote(gjc)?????????????????#將關鍵詞轉碼成瀏覽器認識的字符,默認網站不能是中文 url?=?"http://weixin.sogou.com/weixin?type=1&query=%s&page=1"?%(gjc) html?=?fzhpach.hq_html(url)?????????????????????????????????????#使用我們封裝的爬蟲模塊 pat?=?"微信號:" rst?=?re.compile(pat).findall(html)??#正則獲取公眾號 print(rst) #返回 #["cqhuoguo1",?"qkmjscj888",?"cdsbcdhs",?"zk4538111",?"lamanannv",?"ctm2813333",?"cslhg2016",?"gh_978a858b478f",?"CCLWL0431",?"yuhehaixian"]
抓包教程
首先安裝Fiddler4
軟件界面說明
清除請求
設置抓包瀏覽器
這樣設置好后,這個瀏覽器訪問的網址就會在抓包軟件里看到信息了
設置抓取https協議的網站
導出證書到桌面
將證書安裝到瀏覽器
可以看到軟件已經獲取到https網站了
疑難問題解決:
有些可能已經按照流程在feiddler中設置好了https抓包,但死活抓不了
(1)首先,看看火狐瀏覽器的配置,是不是下方“為所有協議使用相同代理”的地方沒有勾選上,如果是,請勾選上。
有一部分做到這一步應該能解決無法抓https的問題。如果還不行,請繼續往下看。
一般這個時候,還不行,應該就是你的證書問題了,有些可能會問,我是按照正常流程導出并安裝的證書,也會有問題?
對的,就是這么奇怪。
(2)接下來,請在下面這個地方輸入certmgr.msc并回車,打開證書管理。
打開后如下所示:
請點擊操作–查找證書,如下所示:
然后輸入fiddler查找所有相關證書,如下所示:
可以看到,我們找到一個,您可能會找到多個,不要緊,有多少個刪多少個,分別右鍵–刪除這些證書,如下所示:
全刪之后,這一步完成。
(3)再接下來,打開火狐瀏覽器,進入選項-高級-證書-查看證書,然后找以DO_NOT開頭的關于Fiddler的證書,以字母排序的,所以你可以很快找到。如下所示,我們找到兩個,不用多說,右鍵,然后全部依次刪除。你可能找到一個或多個,反正找到多少個刪多少個就行,另外,特別注意,請如圖中【個人、服務器、證書機構、其他】等標簽依次查找,以免遺漏,切記切記!
這些全刪之后,這一步完成,現在證書已經全部清理了,進入下一步。
(4)下載?FiddlerCertMaker.exe,可以去官網找,如不想麻煩,直接下載我提供的,鏈接如下:
鏈接:?https://pan.baidu.com/s/1bQBhxG?密碼: cu85
下載了這個之后,直接打開,不管出現什么錯誤,直接忽略,直到出現如下界面為止:
然后點擊確定,關掉它。
(5)有了證書之后,請重啟Fiddler(關掉再開),重啟之后,訪問https的網站,比如淘寶首頁,有可能成功了,但你也有可能會發現如下錯誤:
“你的連接并不安全” 等類似提示
見到這里,你應該開心,離成功近了。
(6)果斷的,打開fiddler,“Tools–Fiddler Options–HTTPS”,然后把下圖中同樣的地方勾上(注意一致),然后點擊actions,然后先點擊Trust Root…,然后,再點擊Export Root…,此時,導出成功的話,在桌面就有你的證書了。務必注意:這一步成功的話,把第(7)步跳過,不要做了,直接進入第(8)步,如失敗,請繼續第(7步)。
(7)務必注意:上一步成功的話,把這一步跳過,不要做了。如果,你在導出的時候出現:creation of the root certificate was not located等錯誤,不要慌。接下來在cmd命令行中進入Fiddler安裝目錄,比如我的是C盤,所以進入如下圖所示Fiddler2目錄,然后直接復制下方make那一行代碼,然后直接cmd中運行,出現如下所示succeeded提示,出現這一步提示之后,再按步驟(6)的方法導出證書,就能成功了:
makecert.exe -r -ss my -n “CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by?http://www.fiddler2.com” -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2012
(8)好,證書導入到桌面后,請打開火狐瀏覽器,然后進入選項-高級-證書-查看證書-導入-選擇剛導出的桌面的證書-確定。
(9)隨后,為了保險,Fiddler重啟,火狐瀏覽器也重啟一下,然后開始抓HTTPS的包,此時你會發現“你的連接并不安全” 等類似提示已經消失,并且已經能夠抓包了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44134.html
摘要:以下這些項目,你拿來學習學習練練手。當你每個步驟都能做到很優秀的時候,你應該考慮如何組合這四個步驟,使你的爬蟲達到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學習不是一朝一夕的事情,建議多看看一些比較優秀的爬蟲的設計方案,比如說。 (一)如何學習Python 學習Python大致可以分為以下幾個階段: 1.剛上手的時候肯定是先過一遍Python最基本的知識,比如說:變量、數據結構、語法...
摘要:通過本文的學習,可以快速掌握網絡爬蟲基礎,結合實戰練習,寫出一些簡單的爬蟲項目。從技術手段來說,網絡爬蟲有多種實現方案,如。二網絡爬蟲技術基礎在本次課中,將使用技術手段進行項目的編寫。 摘要:本文詳細講解了python網絡爬蟲,并介紹抓包分析等技術,實戰訓練三個網絡爬蟲案例,并簡單補充了常見的反爬策略與反爬攻克手段。通過本文的學習,可以快速掌握網絡爬蟲基礎,結合實戰練習,寫出一些簡單的...
摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...
摘要:今天為大家整理了個爬蟲項目。地址新浪微博爬蟲主要爬取新浪微博用戶的個人信息微博信息粉絲和關注。代碼獲取新浪微博進行登錄,可通過多賬號登錄來防止新浪的反扒。涵蓋鏈家爬蟲一文的全部代碼,包括鏈家模擬登錄代碼。支持微博知乎豆瓣。 showImg(https://segmentfault.com/img/remote/1460000018452185?w=1000&h=667); 今天為大家整...
摘要:百度云搜索,搜各種資料搜網盤,搜各種資料爬取百度新聞,爬取動態生成的信息,抓取百度新聞首頁的新聞地址有多網站,當你瀏覽器訪問時看到的信息,在源文件里卻找不到,由得信息還是滾動條滾動到對應的位置后才顯示信息,那么這種一般都是的動態請求生成的信 【百度云搜索,搜各種資料:http://www.bdyss.cn】 【搜網盤,搜各種資料:http://www.swpan.cn】 crapy爬取...
閱讀 1504·2021-10-11 10:59
閱讀 1876·2021-09-09 11:36
閱讀 1383·2019-08-30 15:55
閱讀 1327·2019-08-29 11:20
閱讀 3063·2019-08-26 13:39
閱讀 1466·2019-08-26 13:37
閱讀 1957·2019-08-26 12:11
閱讀 1324·2019-08-23 14:28