【安排】23行代码爬取知乎全部回答(内附源码和应用程序)

上个月行哥为了给大家推荐书单,1分钟爬取了知乎5646个回答,并统计出前十名推荐量最高的书单给大家分享,并且为了大家使用方便将该篇推文中的代码转成应用程序给大家使用,但是万万没想到

【安排】23行代码爬取知乎全部回答(内附源码和应用程序)_第1张图片

居然有小伙伴要求能不能直接让爬虫代码回答爬取下来做成应用程序

两个字:安排!

【安排】23行代码爬取知乎全部回答(内附源码和应用程序)_第2张图片

1.代码逻辑

这个核心代码是直接对上篇推文中使用的代码进行修改,删去了对书籍名称的提取,添加了爬取内容的写入文件,小伙伴只要把getAnswers(问题号)里的传入参数改成想爬取回答的问题号,剩下的事情就只需要等待了

什么是知乎问题号?

  • 查看知乎网页地址,question后的一串数字就是问题号
    【安排】23行代码爬取知乎全部回答(内附源码和应用程序)_第3张图片
def getAnswers(qid):
    offset = 0
    num = 1
    f = open("知乎回答%s.txt" % qid, "a")
    while True:
        qid = qid
        print('Offset =', offset)
        # 知乎api请求
        data = getAnser(qid, offset)
        print(data)
        if len(data['data']) == 0:
            break
        for line in data['data']:
            # 保存回答数据
            content = line['content']
            pattern = re.compile(r'<[^>]+>', re.S)
            result = pattern.sub('', content)
            print(result)
            f.write("\n【第%d个回答】" % num)
            num += 1
            f.write(result)
        offset += 20
        time.sleep(1)
    f.close()

getAnswers(62096167)

2.应用程序版本

对于不了解爬虫的小伙伴,只需要打开一行数据爬取知乎回答.exe,修改问题号和选择保存路径,就可以将该知乎问题下的所有回答保存到当前路径下,如下图所示
【安排】23行代码爬取知乎全部回答(内附源码和应用程序)_第4张图片
【安排】23行代码爬取知乎全部回答(内附源码和应用程序)_第5张图片

  • 本篇完整代码和exe应用程序关注行哥的公众号【一行数据】回复【一行03】就可以领取了哦
    后台关注.png
    【安排】23行代码爬取知乎全部回答(内附源码和应用程序)_第6张图片

你可能感兴趣的:(python开发)