zoukankan      html  css  js  c++  java
  • 用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
  • 相关阅读:
    接口自动化架构-获取用例
    Windows性能监控工具Perfmon使用指南
    接口自动化架构1-setting
    多进程
    线程锁、守护线程
    多线程
    xlrd模块
    封装写日志的类
    封装redis
    继承
  • 原文地址:https://www.cnblogs.com/hongming/p/9615670.html
Copyright © 2011-2022 走看看