解决采集知乎数据时由于账号被封遗漏的账号重爬问题(python代码)
2024-10-15 04:23:58
'''一、最笨的办法了
###############################################################
#为了处理由于账号被封而没跑到的问题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()对该对象进行转换)
最新文章
- BZOJ1878: [SDOI2009]HH的项链[树状数组 离线]
- HDFS的Trash回收站功能
- SQL2012连接字符串
- 【转】TestFlight APP测试(IOS如何让上架前给其他人测试)
- Step
- java--接口和抽象类
- Android 内存相关 onTrimMemory,onLowMemory,MemoryInfo()
- Android API Level与sdk版本对照表
- php微信支付(仅pc端扫码支付模式二)详细步骤.----仅适合第一次做微信开发的程序员
- 简单的GIT上传
- android 中List转换String,String转换List 改进版本
- 【一天一道LeetCode】#100. Same Tree(100题大关)
- Google Protocol Buffer项目无法加载解决方案
- xshell的优化和连接
- [UE4]CheckBox
- 第一次spring会议
- docker的安装与启动
- css有缝隙
- Django Rest Framework源码剖析(五)-----解析器
- Submatrix Sum