1. 程式人生 > 其它 >正則與xpath爬蟲模板

正則與xpath爬蟲模板

題記

研究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)