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)
python利用百度知道求答题答案
最新推荐文章于 2022-12-16 17:53:14 发布