大家都知道,在python當(dāng)中,需要面對(duì)是各種各樣的問(wèn)題,比如我們需要用到的是:使用python爬蟲實(shí)現(xiàn)子域名探測(cè),這種技能是值得我們?nèi)ミM(jìn)行學(xué)習(xí)的,但是學(xué)習(xí)的話,內(nèi)容還是比較多的,下面就具體的內(nèi)容,給大家做出一個(gè)詳細(xì)解答。
前言
意義:子域名枚舉是為一個(gè)或多個(gè)域查找子域的過(guò)程,它是信息收集階段的重要組成部分。
實(shí)現(xiàn)方法:使用爬蟲與字典爆破。
一、爬蟲
1.ip138
def search_2(domain): res_list=[] headers={ 'Accept':'*/*', 'Accept-Language':'en-US,en;q=0.8', 'Cache-Control':'max-age=0', 'User-Agent':'Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/48.0.2564.116 Safari/537.36', 'Connection':'keep-alive', 'Referer':'http://www.baidu.com/' } results=requests.get('https://site.ip138.com/'+domain+'/domain.htm',headers=headers) soup=BeautifulSoup(results.content,'html.parser') job_bt=soup.findAll('p') try: for i in job_bt: link=i.a.get('href') linkk=link[1:-1] res_list.append(linkk) print(linkk) except: pass print(res_list[:-1]) if __name__=='__main__': search_2("jd.com")
返回結(jié)果:
2.bing
def search_1(site): Subdomain=[] headers={ 'Accept':'*/*', 'Accept-Language':'en-US,en;q=0.8', 'Cache-Control':'max-age=0', 'User-Agent':'Mozilla/5.0(X11;Linux x86_64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/48.0.2564.116 Safari/537.36', 'Connection':'keep-alive', 'Referer':'http://www.baidu.com/' } for i in range(1,16): url="https://cn.bing.com/search?q=site%3A"+site+"&go=Search&qs=ds&first="+str( (int(i)-1)*10)+"&FORM=PERE" #conn=requests.session() #conn.get('http://cn.bing.com',headers=headers) #html=conn.get(url,stream=True,headers=headers) html=requests.get(url,stream=True,headers=headers) soup=BeautifulSoup(html.content,'html.parser') #print(soup) job_bt=soup.findAll('h2') for i in job_bt: link=i.a.get('href') print(link) if link in Subdomain: pass else: Subdomain.append(link) print(Subdomain) if __name__=='__main__': search_1("jd.com")
返回結(jié)果:
二、通過(guò)字典進(jìn)行子域名爆破
def dict(url): for dict in open('dic.txt'):#這里用到子域名字典文件dic.txt dict=dict.replace('\n',"") zym_url=dict+"."+url try: ip=socket.gethostbyname(zym_url) print(zym_url+"-->"+ip) time.sleep(0.1) except Exception as e: #print(zym_url+"-->"+ip+"--error") time.sleep(0.1) if __name__=='__main__': dict("jd.com")
返回結(jié)果:
三、python爬蟲操作步驟
1.寫出請(qǐng)求頭headers與目標(biāo)網(wǎng)站url
headers={ 'User-Agent':"Mozilla/5.0(Windows NT 10.0)AppleWebKit/537.36(KHTML,like Gecko)Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240" } url="https://site.ip138.com/"
2.生成請(qǐng)求
get:res=requests.get(url+domain,headers=headers) post:res=requests.post(url+domain,headers=headers,data=data)
3.抓取數(shù)據(jù)
soup=BeautifulSoup(res.content,'html.parser')#以html解析器解析res的內(nèi)容
此時(shí)print(soup),返回結(jié)果:
4.分析源碼,截取標(biāo)簽中內(nèi)容
1.通過(guò)分析源碼,確定需要提取p標(biāo)簽中的內(nèi)容:
job_bt=soup.findAll('p')
此時(shí)print(job_bt),返回結(jié)果:
2.繼續(xù)提取a標(biāo)簽內(nèi)屬性為href的值:
try: for i in job_bt: link=i.a.get('href') linkk=link[1:-1] res_list.append(linkk) print(linkk) except: pass
得結(jié)果:
3.再進(jìn)行截?。?/p>
res_list[:-1]
得結(jié)果:
四、爬蟲一些總結(jié)
1.抓取數(shù)據(jù),生成soup
soup=BeautifulSoup(res.content,'html.parser')#以html解析器解析res的內(nèi)容
2.從文檔中獲取所有文字內(nèi)容
print(soup.get_text())
3.從文檔中找到所有<a>標(biāo)簽的鏈接
for link in soup.find_all('a'): print(link.get('href'))
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)?lái)更多的幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/128252.html
摘要:通過(guò)域名,最終得到該域名對(duì)應(yīng)的地址的過(guò)程叫做域名解析或主機(jī)名解析。協(xié)議運(yùn)行在協(xié)議之上,使用端口號(hào)。在文檔中對(duì)有規(guī)范說(shuō)明,對(duì)的動(dòng)態(tài)更新進(jìn)行說(shuō)明,對(duì)查詢的反向緩存進(jìn)行說(shuō)明。 你們是否跟我一樣,不知道什么是DNS,在這里,首先普及一下什么是DNS DNS(Domain Name System,域名系統(tǒng)),萬(wàn)維網(wǎng)上作為域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫(kù),能夠使用戶更方便的訪問(wèn)互聯(lián)網(wǎng)...
摘要:用將倒放這次讓我們一個(gè)用做一個(gè)小工具將動(dòng)態(tài)圖片倒序播放發(fā)現(xiàn)引力波的機(jī)構(gòu)使用的包美國(guó)科學(xué)家日宣布,他們?nèi)ツ暝率状翁綔y(cè)到引力波。宣布這一發(fā)現(xiàn)的,是激光干涉引力波天文臺(tái)的負(fù)責(zé)人。這個(gè)機(jī)構(gòu)誕生于上世紀(jì)年代,進(jìn)行引力波觀測(cè)已經(jīng)有近年。 那些年我們寫過(guò)的爬蟲 從寫 nodejs 的第一個(gè)爬蟲開(kāi)始陸陸續(xù)續(xù)寫了好幾個(gè)爬蟲,從爬拉勾網(wǎng)上的職位信息到爬豆瓣上的租房帖子,再到去爬知乎上的妹子照片什么的,爬蟲...
摘要:內(nèi)存池機(jī)制提供了對(duì)內(nèi)存的垃圾收集機(jī)制,但是它將不用的內(nèi)存放到內(nèi)存池而不是返回給操作系統(tǒng)。為了加速的執(zhí)行效率,引入了一個(gè)內(nèi)存池機(jī)制,用于管理對(duì)小塊內(nèi)存的申請(qǐng)和釋放。 注:答案一般在網(wǎng)上都能夠找到。1.對(duì)if __name__ == main的理解陳述2.python是如何進(jìn)行內(nèi)存管理的?3.請(qǐng)寫出一段Python代碼實(shí)現(xiàn)刪除一個(gè)list里面的重復(fù)元素4.Python里面如何拷貝一個(gè)對(duì)象?...
閱讀 1066·2023-01-14 11:38
閱讀 1062·2023-01-14 11:04
閱讀 901·2023-01-14 10:48
閱讀 2377·2023-01-14 10:34
閱讀 1147·2023-01-14 10:24
閱讀 1026·2023-01-14 10:18
閱讀 654·2023-01-14 10:09
閱讀 733·2023-01-14 10:02