正則與xpath爬蟲模板
阿新 • • 發佈:2021-06-25
題記
研究python上癮啊,今天搞個正則與xpath爬取資料的模板。
正文
直接上程式碼,很簡單,自己看吧,xpath有些小坑,有的東西他爬不到。
#coding=utf-8 import requests from lxml import etree import urllib3 import re #re正則匹配模型 def Retest(url): try: url="http://"+url+"/hosts" #請求網址 print(url) r = requests.get(url,verify = False,timeout=5)#print(str(r.content)) #content = etree.HTML(r.content) #正則返回內容 name = re.findall(r"UserName=\w+", str(r.content)) passw = re.findall(r"Password=\w+", str(r.content)) #取返回值 name = name[0] passw = passw[0] print(name) print(passw)#這裡可以加寫入檔案的語句 except: pass #xpath匹配模型 def Xpathtest(url): #請求url try: r = requests.get(url,verify = False,timeout=5) #print(r) #print(type(r)) #url返回內容進行編碼 r.encoding = 'utf-8' #content=r.content.decode('utf-8') #print(str(r.content.decode('utf-8')))#content = etree.HTML(r.content.decode('utf-8')) #print(r.text) #html = r.data.decode('utf-8', 'ignore') #轉換成可以進行xpath讀取的格式存起來。 _element = etree.HTML(r.text) #print(type(_element)) text = _element.xpath("//div[@class='post-meta wrapper-lg']/h2[@class='m-t-none text-ellipsis index-post-title text-title']/a/text()") print(text) #ipdata = '\n'.join(text) #如果獲取的是陣列可以通過遍歷進行輸出 #for i in text: # print(i) # 這裡可以加寫入檔案的語句 except: pass if __name__ == '__main__': file = open('edu.txt', 'r') number = file.readlines() for i in number: i = i.rstrip() url = str(i) Retest(url) #賬號密碼獲取 #url="" #Xpathtest(url)