用Python定時爬取網站最新資源

記錄一下。html

寫作個網站,爬了另外一個網站的內容來作本身網站的內容。web

把腳本掛到服務器,每隔一個小時去爬一次資源,而後保存到一個HTML文件裏。flask

用flask作web對接,當有請求的時候就返回那個HTML文件。api

這樣就實現了一個api接口。思路大概就這樣,比較簡單,沒作什麼防禦。服務器

 

下面這個是腳本代碼。app

 1 import requests,time,re     #一共三個模塊,沒裝的先裝
 2 
 3 def zyw():
 4     while(True):
 5         url='https://www.525zyw.com/'  #爬的網站URL
 6         html=requests.get(url).text        #獲取網站的首頁源代碼
 7         re_url=re.findall('<li class="column half"><div class="lbbt_c00">(.*?)</div>.*?</li>',html,re.S)   #比配最新資源
 8         list_r=''
 9         for i in re_url:
10             tiem=re.findall('.*?>(.*?)</span>.*?',i,re.S)[0]   #這裏的四個正則主要是進一步的提取咱們須要的東西
11             src=re.findall('.*?<img src="(.*?)"/>.*?',i,re.S)[0]   #
12             href=re.findall('.*?<a href="(.*?)".*?',i,re.S)[0]
13             title=re.findall('.*?title="(.*?)".*?',i,re.S)[0]
14             res='<span style="font-weight: bold;">%s</span><img src="%s%s"/> <a href="%s%s" title="%s" style="color:#000000;" target="_blank">%s</a><br><br>'%(tiem,url,src,url,href,title,title)
15             list_r=list_r+res   #通過上面的拼接,這裏是全部的內容加入一個字符串
16         f=open('./templates/zyw.html','w')   #打開文件
17         f.write(list_r)    #把字符串寫入文件
18         f.close()
19         time.sleep(3600)    #這裏是每隔1個小時去爬一次,測試時先註釋掉
20 
21 if __name__ == '__main__':
22     zyw()    #調用

 

這裏是用flask框架作對接。原本是想直接返回HTML文件的,可是出現了點問題,我就讀HTML文本直接返回文本。框架

 1 from flask import Flask
 2 from flask import request
 3 
 4 app=Flask(__name__)
 5 @app.route('/zyw/ziyuan/')
 6 def hm():
 7     ff=open("templates/zyw.html")
 8     str=ff.read()
 9     ff.close()
10     return str
相關文章
相關標籤/搜索