写一个爬虫抓取Archdaily网站的搜索结果数量,返回空值,想要知道错误原因

问题遇到的现象和发生背景

想要写一个爬虫抓取Archdaily网站的搜索结果。在body > div:nth-child(20) > div > div.search-header > div:nth-child(1) > h3。 无论怎么尝试,在html输出正常的情况下解析函数返回为空。

问题相关代码,请勿粘贴截图
from importlib.resources import read_binary
from urllib import request
import re
import time
import random
import csv
from ua_info import ua_list
# 定义一个爬虫类
class MaoyanSpider(object): 
    # 初始化
    # 定义初始页面url
    def __init__(self):
        self.url = 'https://www.archdaily.com/search/projects/year/{}'
        
    # 请求函数
    def get_html(self,url):
        headers = {'User-Agent':random.choice(ua_list)}
        req = request.Request(url=url,headers=headers)
        res = request.urlopen(req)
        html = res.read().decode()
        # 直接调用解析函数
        
        self.parse_html(html)
    
    # 解析函数
    def parse_html(self,html):
        
        # 正则表达式
        re_bds = '<h3 class="search-header__title">(.*?)</h3>'
        
        pattern = re.compile(re_bds)
        
        r_list = pattern.findall(html)

        self.save_html(r_list)
    # 保存数据函数,使用python内置csv模块
    def save_html(self,r_list):
        #生成文件对象  
        with open('arch.csv','a',newline='',encoding="utf-8") as f:
            #生成csv操作对象
            writer = csv.writer(f)
            #整理数据
            for r in r_list:
                name = r[0].strip()
                
                L = [name,]
                # 写入csv文件
                writer.writerow(L)
                print(name,)
    # 主函数
    def run(self):
        #抓取第一页数据
        for offset in range(2017,2019,1):
            url = self.url.format(offset)
            
            self.get_html(url)
            #生成1-2之间的浮点数
            time.sleep(random.uniform(1,2))
# 以脚本方式启动
if __name__ == '__main__':
    #捕捉异常错误
    try:
        spider = MaoyanSpider()
        spider.run()
    except Exception as e:
        print("错误:",e)

运行结果及报错内容

[] //返回空值

我的解答思路和尝试过的方法

Print(html)正常,print(r_list)空,输出csv文件空白

我想要达到的结果

每页返回一个结果 如46,178 Results