python利用百度知道求答题答案

import json
import requests
from bs4 import BeautifulSoup as BS
from urllib import parse

#解析问题和答案
def open_question():
    with open("tounao.txt","r",encoding="utf-8") as f:
            res = f.read()
            js = json.loads(res)
            question = js["data"]["quiz"]
            options = js["data"]["options"]
            print(question)
    return question, options

#搜索百度知道,取出结果列表
def search(question):
    pages = [0, 10, 20]
    question = parse.quote(question.encode('gbk'))
    answers = []
    for page in pages:
    #"https://zhidao.baidu.com/search?lm=0&rn=10&pn={}&fr=search&ie=gbk&word={}"
        url ='https://zhidao.baidu.com/search?word={}&ie=gbk&site=-1&sites=0&date=0&pn={}&fr=search&lm=0&rn=10'.format(question,str(page))
        print(url)
        headers ={
            'User-Agent':'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
        }
        r = requests.get(url, headers = headers)
        r.encoding = 'gbk'
        soup = BS(r.text, "html.parser")
        #print(soup.contents)
        want = soup.find("div", id="wgt-list")
        wants = want.find_all("dl", class_ ='dl')

        for dl in wants:
                ans = dl.find("dd",class_="dd answer").text
                answers.append(ans)
    return answers

#分析结果
def work(options, answers):
    res = {option:0 for option in options}
    for option in options:
        for answer in answers:
            if answer.find(option)>=0:
                res[option]+=1
    print(res)
    return res

question, options = open_question()
answers = search(question)
work(options, answers)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一种高级编程语言,拥有开源免费的环境和庞大的第三方库支持。在繁琐的答题工作中,利用Python实现百万答题自动百度搜索答案,可以大大提高效率和准确性。 Python实现百万答题自动百度搜索答案的过程可以分解成以下几个步骤: 第一步,获取题目和答案。这需要从一个源获取题目和答案的问答对,比如已有的题库或者从网上抓取。获取后,需要对问答对进行特征提取和分类存储,方便后续查询时使用。 第二步,使用Python实现百度搜索。可以使用Python内置的urllib库模拟浏览器访问百度搜索引擎,在搜索框中输入问题文本,然后获取并解析搜索结果的信息,包括相关答案和搜索结果的URL列表。需要注意的是,这种方式并不违反百度的搜索协议,因为查询和搜索的次数都是有限制的,且不会对搜索引擎的性能产生负面影响。 第三步,使用Python自然语言处理技术过滤答案。搜索结果的URL列表中可能包含了很多垃圾信息,例如广告、论坛讨论等等,需要使用Python自然语言处理技术对网页内容进行过滤和解析,只保留与答案相关的信息。例如,可以使用词频统计、TF-IDF等技术对搜索结果进行排序和过滤。 第四步,使用Python自动化工具模拟答题过程。使用Python模拟人的操作,可以实现自动化答题,即根据程序的搜索结果,自动点击正确答案并提交。需要注意的是,为了防止被封号,程序需要加入随机休眠和代理池等机制,以模拟人的操作。 通过以上步骤,就可以使用Python实现百万答题自动百度搜索答案。当然,需要提醒大家的是,使用这种方式来解决答题问题,并不是最好的方法,正确的学习和思考才是成功的关键。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值