Python抓取简书的热门文章

原理和上章获取段子一样,只不过是换了解析的内容。

代码:

#-*- coding: utf-8 -*-
import urllib2
import re

def GetPageContent(page_url,heads):
    try:
        req = urllib2.Request(page_url,headers=heads)
        resp = urllib2.urlopen(req)
        return resp.read().decode('utf8')
    except Exception, e:
        print "Request [%s] error. -> "%(page_url), e
        return ""

def GetTopNotes(cont):

    strRe = '.*?<li>.*?data-user-slug="(.*?)"'
    strRe += '.*?<h4>.*?<a.*?href="(.*?)".*?>(.*?)</a>'
    strRe += '.*?class="fa fa-comments-o".*?>.*?</i>(.*?)</a>'
    strRe += '.*?<a.*?id="like-note".*?</i>(.*?)</a>'

    pat = re.compile(strRe, re.S)
    items = re.findall(pat,cont)

    for item in items:
        for i in item:
            print "".join(i.split())
        print '==================================='

if __name__ == '__main__':
    url = 'http://www.jianshu.com/trending/now'
    user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
    headers = {'User-Agent':user_agent}

    cont = GetPageContent(url, headers)
    cont = cont[cont.find('<ul class="top-notes ranking">')::]
    GetTopNotes(cont)
输出:

C:\Python27\python.exe F:/SrcCode/Python/GetNewlyJokes/JianShuSpider.py
4c4231dc6796
/p/0aabe4120b78
下水道的秘密
48
20
===================================
564d899d4d3c
/p/8af1ad733670
蝉鸣的夏季我想遇见你
117
71
===================================
a36e18ccb59d
/p/f9e60eb98a28
再见,爱过的人
8
46
===================================
bcfca792018f
/p/9fa6b6e58fd0
我们曾相遇,想到就心酸(三十五)
19
27
===================================
2870cb3c6f77
/p/8329df311356
最佳情人
39
288
===================================
dc22650a4033
/p/f7f39b72fdb2
【连载】触不到的女神(10)
31
21
===================================
内容一次为:作者id,文章链接,文章标题,评论数,收到的喜欢数


Python递归函数是指一个函数在其函数体内调用自己的一种方法。它是一种简洁而有力的编程技巧,适用于解决需要重复进行相同或者相似操作的问题。 在Python中,使用递归函数的语法很简单,只需要在函数体内调用自身并提供适当的终止条件即可。递归函数通常包括两个部分:基本情况和递归情况。 基本情况是指函数可以直接得到结果而不需要调用自身的情况。在遇到基本情况时,递归函数就可以停止递归并返回结果,从而避免无限循环。 递归情况是指函数需要调用自身来解决更小规模的问题的情况。在递归情况下,函数将输入参数缩小到更小的规模,然后再次调用自身,直到达到基本情况。 递归函数可以解决很多问题,比如计算斐波那契数列、计算阶乘、二叉树的遍历等。递归函数的运行过程可以形象地表示为一个函数的调用栈。 需要注意的是,递归函数可能存在性能问题。因为每次递归调用都会创建一个新的函数帧,所以递归函数的内存消耗较大。此外,如果递归调用的深度过大,可能会导致堆栈溢出错误。 为了解决这些问题,可以优化递归函数的实现,比如使用尾递归优化、剪枝等技巧。另外,在使用递归函数时,一定要确定递归结束条件,并尽量避免无限递归的情况。 总之,Python递归函数是一种非常有用的编程技巧,可以简化问题的解决过程。但是在使用时需要注意性能和终止条件,避免出现问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值