Python+Google Hacking+百度搜索引擎進行信息蒐集

記錄一下在用python爬取百度連接中遇到的坑:php

1.獲取百度搜索頁面中的域名URLpython

 

 

BeautifulSoup獲取a標籤中href屬性後,連接爲百度url,利用request直接訪問默認會直接進行跳轉,沒法獲取所需域名瀏覽器

此時須要將requests的allow_redirects屬性設置爲False,禁止進行跳轉,requests默認會進行跳轉安全

 

 再使用.headers['Location']獲取最後連接:final_url = baidu_url.headers['Location']多線程

2.百度中的連接返回不統一url

獲取到實際域名連接後,發現還有一些奇怪的東西spa

 

訪問後發現非site蒐集域名線程

忽然想到,頗有多是百度的廣告3d

那就須要篩選出包含baidu.php?的連接去剔除掉blog

a="baidu.php?"

b="url"

if a in b:來進行篩選

3.百度安全驗證繞過

當在百度搜索連接中加入pn頁碼參數時,便會直接出現百度安全驗證(第一次訪問就會出現,並不存在請求頻繁)

但發現當手動在瀏覽器去百度進行site語法請求時,並不會出現百度安全驗證碼,猜測應該是有在HTTP請求頭或者參數中漏掉一些參數  

 

 對HTTP請求參數進行一系列不可描述的操做以後,發現還須要"bs"、"rsv_jmp"兩個參數

 

 未添加這兩個參數時,還存在驗證,未得到任何返回數據

 添加以後,已成功獲取url

4.獲取查詢的總頁數並去進行遍歷

沒找到獲取總頁面的接口,每次請求最多顯示10個頁面連接,獲取以後的還須要去動態進行交互點擊

 

 

網上也沒找到好辦法,最後決定採用while循環,來固定遍歷前N個頁面

 

 

 當tagh3長度值爲0時直接跳出break

5.連接根域名的去重問題

設置set集合  lines_seen = set()

每次寫入url前判斷

6.多域名多線程問題

相關文章
相關標籤/搜索