用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
相关文章
相关标签/搜索