zoukankan      html  css  js  c++  java
  • 解决采集知乎数据时由于账号被封遗漏的账号重爬问题(python代码)

    '''一、最笨的办法了
    ###############################################################
    #为了处理由于账号被封而没跑到的问题id进行以下两步:
    ###############################################################
    #第一步:将出现403错误的问题id提取出来
    #HTTPSConnectionPool(host='api.zhihu.com', port=443): Max retries exceeded with url: /questions/274001355 (Caused by ResponseError('too many 403 error responses',))
    df = pd.read_excel('errors' + '.xlsx')#pycharm报错信息筛选出来403异常
    a = df['id']#提取为df
    w = writeXLS.WriteXLS(filename='news' + '.xls', sheet_num=0)#打开表格
    rows=0
    for i in a:
    str=(i.split('/')[2])#输出所有包含知乎问题id的字符串
    #如:274001355 (Caused by ResponseError('too many 403 error responses',))
    print(str)
    ###############################################################
    #第二步:将输出的信息复制到errors.txt内
    f=open('errors' + '.txt')
    #提取问题id写入 news.xls文件
    for i in f.readlines():
    m=(i.split(' (')[0])
    b = []
    b.append(m)
    w.write_row(row=rows, colon=0, items=b)
    w.save_table()
    rows+=1
    ###############################################################'''

    二、将出现403异常的id存入问题id列表
    except Exception as e:#捕获异常
    print(e)
    stt = 'too many 403 error responses'
    if stt in str(e):#若捕获的的异常为403则将问题id(i)放入id列表的末尾,以便于遗漏后继续跑
    topic_list.append(i)#每次放入id列表的末尾(若topic_list不是列表,用list()对该对象进行转换)




  • 相关阅读:
    js技巧收集(200多个)
    我的博客开张了,欢迎大家前来做客
    认识ASP.NET配置文件Web.config
    C#纯数学方法递归实现货币数字转换中文
    Asp.Net细节性问题技巧精萃(转载)
    ASP.NET2.0+SQL Server2005构建多层应用
    ASP.NET页面间的传值的几种方法(转载)
    介绍几种 ADO.net 中的数据库连接方式
    hdu 1401
    poj 1338 丑数
  • 原文地址:https://www.cnblogs.com/kjkj/p/9003512.html
Copyright © 2011-2022 走看看