爬虫根据标题爬去数据

该段代码使用while循环,逐页抓取网页上的云南省新冠肺炎疫情情况数据。通过设置headers和params,获取网页内容并解析HTML,提取出链接、标题和发布时间。匹配特定标题后,保存相关数据,包括省份、标题、发布时间和详细信息。每处理完一页,暂停一秒钟,直至遍历完所有页面。
摘要由CSDN通过智能技术生成

个人笔记
在这里插入图片描述

    while k < 10:
        params['page'] = k
        enum_url = enum_base + '?' + urlencode(params)
        headers['Referer'] = enum_url
        content = get(enum_url, headers)
        html = etree.HTML(content)
        href_list = html.xpath('//div[@class="theSimilar"]/ul/li/a/@href')
        title_list = html.xpath('//div[@class="theSimilar"]/ul/li/a/text()')
        publish_list = html.xpath('//div[@class="theSimilar"]/ul/li/span/text()')
        if len(href_list) == 0:
            break
        if len(href_list) == len(title_list) == len(publish_list):
            for i in range(len(href_list)):
                data_info = {}
                title = title_list[i]
                is_title = re.match(r'\d+年\d+月\d+日云南省新冠肺炎疫情情况|云南省新型冠状病毒[感染的]*肺炎疫情情况', title)
                if is_title:
                    href = urljoin(info_base, href_list[i])
                    data_info['province'] = '云南'
                    data_info['title'] = title
                    data_info['publish_time'] = publish_list[i].replace('[', '').replace(']', '')
                    data_info['text'] = info_parse(href, headers)
                    print(data_info)
                    save(data_info)
                    time.sleep(1)
        else:
            print('长度不相等')
            break

        k += 1
        time.sleep(1)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风启新尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值