欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

提取百度新闻的标题、网址、日期和来源

程序员文章站 2022-05-02 22:46:59
...

1 需求

提取百度新闻的标题、网址、日期和来源,最后进行数据清洗。

2 代码实现

import re

import requests

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0'}
url = "https://www.baidu.com/s?tn=news&rtt=4&bsst=1&cl=2&wd=阿里巴巴&medium=0"
res = requests.get(url=url, headers=headers).text
# 获取来源和日期
p_source = '<span class="c-color-gray c-font-normal c-gap-right">(.*?)</span>'
p_data = '<span class="c-color-gray2 c-font-normal">(.*?)</span>'
data = re.findall(p_data, res)
source = re.findall(p_source, res)
# 获取网址
p_href = 'h3 class="news-title_1YtI1"><a href="(.*?)"'
href = re.findall(p_href, res)
# 获取标题
p_title = '<h3 class="news-title_1YtI1">.*?>(.*?)</a>'
title = re.findall(p_title, res, re.S)
# 数据清洗
for index in range(len(title)):
    title[index] = re.sub('<.*?>', '', title[index]).strip()
    print(str(index + 1) + "." + title[index] + '(' + source[index] + " " + data[index] + ')')
    print(href[index])