fengshuihuan 2022-10-06 15:37 采纳率: 100%
浏览 93
已结题

python爬取网页题库如何将选项一一对应

python爬取网页题目 选项怎么一一对应

用代码块功能插入代码,请勿粘贴截图
import requests
import re

url_list = []
option_one = []
option_two = []
op = []

for i in range(21112, 21114):
    url = "http://kjds.52jingsai.com/reviewx.php?snum={}".format(i)
    # 模拟浏览器的访问
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',
        'Cookie': 'PHPSESSID=698octtqm0auki0ol0lhnaom5u; qqopenid=63F6832C8BDB537EB8472808AA00F409; qqnick=%B6%A5%BC%B6%F2%E5%F2%EF'}
    res = requests.get(url, headers=headers)

    if res.status_code == 200:
        # 1.获取网页源代码
        raw_text = res.text

        # 正则表达式
        re_res = re.findall(
            r'
(.*?)(.*?)
(.*?)
'
, raw_text, re.DOTALL) # 题目 op1 = re.findall(r'
(.*?)
'
, raw_text, re.DOTALL) # 选项 op2 = re.findall(r'
(.*?)
'
, raw_text, re.DOTALL) # 答案 # 检查打印获取到的信息 url_list.extend(re_res) # 打印题目 option_one.extend(op1) # 打印选项 option_two.extend(op2) # 打印答案 op.extend(op1 + op2) # 选项和答案一一对应 print(url_list) print(len(url_list)) print(op)

题目是前20道题是判断题后40到题是选择题,且判断题没有abcd只有对错两个选项,我输出的结果会先输出对错然后输出abcd再输出选项

img

img

尝试过用zip函数 但是输出结果是 ’对:A ‘ ’错:B‘

我想要达到的结果

img

  • 写回答

1条回答 默认 最新

  • Ko-walski 2022-10-06 16:34
    关注

    拿去

    import requests
    from bs4 import BeautifulSoup
    
    url_list = []
    option_one = []
    option_two = []
    op = []
    
    for i in range(21112, 21114):
        url = "http://kjds.52jingsai.com/reviewx.php?snum={}".format(i)
        # 模拟浏览器的访问
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',
            'Cookie': 'PHPSESSID=698octtqm0auki0ol0lhnaom5u; qqopenid=63F6832C8BDB537EB8472808AA00F409; qqnick=%B6%A5%BC%B6%F2%E5%F2%EF'}
        res = requests.get(url, headers=headers)
    
        if res.status_code == 200:
            # 1.获取网页源代码
            raw_text = res.text
            # with open('mybaidu.html', 'w', encoding="utf-8") as f:
            #     f.write(raw_text)
            soup = BeautifulSoup(raw_text,'lxml') # 设置解析库为
            res = soup.select('div[class="subject_item"]')
            for i in res:
    
                print(i.findNext(attrs={"class":"subject_title"}).text)
                for j in i.findNext(attrs={"class":"choose_answer"}).findAll(attrs={"class":"a_1"}):
                    print(j.text)
                print("\n")
    
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月14日
  • 已采纳回答 10月6日
  • 创建了问题 10月6日

悬赏问题

  • ¥50 三种调度算法报错 采用的你的方案
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥15 对于这个问题的解释说明
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败