用Python定时爬取网站最新资源

记录一下。

写做个网站,爬了另一个网站的内容来做自己网站的内容。

把脚本挂到服务器,每隔一个小时去爬一次资源,然后保存到一个HTML文件里。

用flask做web对接,当有请求的时候就返回那个HTML文件。

这样就实现了一个api接口。思路大概就这样,比较简单,没做什么防护。

 

下面这个是脚本代码。

 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

 

posted @ 2018-09-09 22:54  大铭分享  阅读(491)  评论(0编辑  收藏  举报