【爬虫】02-爬新浪新闻

1.准备工作

开始爬取

目录结构
在这里插入图片描述

代码

import requests, re


def get_sina_news(url):
    # url
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"
    }

    # 响应内容
    req = requests.get(url=url, headers=headers)
    html = req.content.decode()
    # print(html)  # 测试html

    # 提取数据
    reg = r'href="https:\/\/news\.sina\..*?"'
    news_url_list = re.findall(reg, html)[1::]
    news_url_list.pop(0)

    # print(news_url_list)  # 测试url_list
    # print(news_url_list[0][6:-1])
    # news_html = requests.get(url=news_url_list[0][6:-1])
    # print(news_html)
    count = 1
    for news_url in news_url_list:
        # 新闻详情url
        # print(news_url[6:-1])
        news_html = requests.get(url=news_url[6:-1]).content.decode()
        # print(news_html)  # 测试新闻详情页
        title_reg = r'<h1 class="main-title">(.*)</h1>'
        try:
            news_title = re.findall(title_reg, news_html)[0] + ".txt"
        except Exception as e:
            print(e)
            continue
        # print(news_title)
        # 新闻内容
        content_reg = r'<p>(.*)</p>'
        content_list = re.findall(content_reg, news_html)
        # print(content_list)
        content = ""
        for string in content_list:
            content += string

        # print(content)  # 测试
        # 内容排版
        content = content.replace("\u3000\u3000", '\n  ')
        content = re.sub(r'<strong>', '', content)
        content = re.sub(r'<\/strong>', '', content)
        # content = content.split('\n ')
        # print(content)

        # 存储数据
        with open("news/sina_news_1130/"+news_title, 'w') as f:
            f.writelines(content)
            print("已完成第%d篇新闻爬取" % count)
            count += 1

if __name__ == '__main__':
    ret = get_sina_news("https://www.sina.com.cn/")

爬取结果

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值