python 关于函数递归调用自己

Posted zengxm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 关于函数递归调用自己相关的知识,希望对你有一定的参考价值。

爬取b站博人传

每页短评20个,页数超过1000页,

代码如下

import requests
import json
import csv
def main(start_url):
    headers = User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/73.0.3683.75 Safari/537.36,
    res = requests.get(url=start_url,headers=headers).content.decode()
    data = json.loads(res)
    try:
        data = data[result][list]
    except:
        print(-----------)
    cursor = re.findall("cursor":"(\d+)",,res)


    for i in data:
        mid = i[author][mid]
        uname = i[author][uname]
        content = i[content]
        content= content.strip()
        try:
            last_index_show = i[user_season][last_index_show]
        except:
            last_index_show = None

        print(mid,uname,content,last_index_show)
        print(------------------------)

        with open(borenzhuan_duanping.csv, a, newline=‘‘,encoding=utf-8)as f:
            writer = csv.writer(f)
            writer.writerow([mid,uname,content,last_index_show])


    if cursor:
        next_url = https://bangumi.bilibili.com/review/web_api/short/list?media_id=&folded=0&page_size=20&sort=0&sort=0&cursor=.format(id) + cursor[0]
        main(next_url)
    else:
        print(抓取完成)

if __name__ == __main__:



    zhuye_url = https://www.bilibili.com/bangumi/media/md5978/
    id = re.findall(md(\d+), zhuye_url)[0]
    start_url = https://bangumi.bilibili.com/review/web_api/short/list?media_id=&folded=0&page_size=20&sort=0&cursor=.format(id)

    main(start_url)

 

在爬取过程中发现,每当递归到999会发生异常

RecursionError: maximum recursion depth exceeded in comparison

这个函数在递归自身是发生的异常

只需要在程序开头添加

import sys
sys.setrecursionlimit(100000)

防止内存爆炸 

以上是关于python 关于函数递归调用自己的主要内容,如果未能解决你的问题,请参考以下文章

小白有一个关于python递归的问题 求教

vue递归组件的一些理解

python 递归与递归函数

Python之递归函数

Python的递归函数

python 函数的递归操作