• 【python练习】截取网页里最新的新闻


    需求:

    在下面这个网页,抓取最新的新闻,按天划分。

    http://blog.eastmoney.com/13102551638/bloglist_0_1.html

    实现方法1:使用递归

    import urllib
    import re
    import time

    #读取网页内容
    content = urllib.urlopen('http://blog.eastmoney.com/13102551638/bloglist_0_1.html').read()
    #print content

    #截取一部分
    pre = re.compile('<li><a href="(.+?)" target="_blank">(.+?)</a><span class="time">(.+?)</span></li>')
    new = re.findall(pre,content)
    #print new


    class News:
    #当前年月日
    t=int(time.strftime("%Y%m%d ",time.localtime()))

    def __init__(self,ct):
    self.ct = ct

    def search(self):
    News.t-=1
    #循环这个列表
    for item in self.ct:
    #列表里,新闻的时间
    date = int(item[2][1:5]+item[2][6:8]+item[2][9:11])
    #如果新闻是今天发的
    if date >= News.t:
    #输出这个新闻的标题
    title=item[1]
    return title
    #否则,继续递归search函数
    else:
    News.search()

    aaa=News(new)
    cc=aaa.search()
    print(cc)

    实现方法2:使用while循环

    import urllib
    import re
    import time

    #读取网页内容
    content = urllib.urlopen('http://blog.eastmoney.com/13102551638/bloglist_0_1.html').read()
    #print content

    #截取一部分
    pre = re.compile('<li><a href="(.+?)" target="_blank">(.+?)</a><span class="time">(.+?)</span></li>')
    new = re.findall(pre,content)
    #print new


    class Good:

    def __init__(self,ct):
    self.ct = ct

    def search(self):
    cc=self.ct
    i=0
    #第一条新闻时间和下一条新闻时间对比,一次类推。如果一样,输出第一条新闻的标题,继续循环
    while cc[i][2][0:11] == cc[i+1][2][0:11]:
    print(cc[i][1])
    i+=1
    #如果不一样,输出刚才对比的第一条新闻的标题
    else:
    print(cc[i][1])


    aaa=Good(new)
    cc=aaa.search()

  • 相关阅读:
    spring异常处理器
    热部署环境下,dubbo序列化的bug和优化
    函数式编程的一些魅力
    常用的jvm命令
    JS直接访问WebService(来自于网络)
    AjaxControlToolkit使用报错
    Server Application Unavailable
    ScriptManager调用WebService注意事项
    SNK签名文件添加
    vs无法调试,启动后类似于ctrl+F5
  • 原文地址:https://www.cnblogs.com/mogujiang/p/5528057.html
Copyright © 2020-2023  润新知