利用python爬取新浪新闻

 先导入所需要的库:

import urllib.request
import re
from requests import RequestException
import requests
import os

模拟UA:

headers = {'content-type': 'application/json',
                   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36'}
    req = urllib.request.Request(url=url, headers=headers)
    response = urllib.request.urlopen(req)
    html = response.read().decode('utf-8')
    return html

提取信息:

 # 题目
    pattern = re.compile('<h1 class="main-title">(.*?)</h1>', re.S)
    title = pattern.findall(html)[0]

题目,日期,来源,正文一样都可以按这个方法爬取。

数据存储:

 with open('./news/{}.txt'.format(date[:11] + '_' + title), 'w', encoding='utf-8') as f:
        f.write(title + '\t' + date + '\t' + source + '\n')
        for i in article:
            f.write(i.strip())

存储文件夹:

    if not os.path.exists('news'):
        os.mkdir('news')

循环爬取:

  for i in range(len(links)):
        links[i] = links[i].replace('\\', '')

检测异常:

  try:
            html = get_page(url)
            # 解析响应、保存结果
            get_parser(html)
            count += 1
        except:
            print(f'爬取中止,已爬取{count}条新闻')
            f = 0
            break

运行结果截图:

如果需要完整代码,关注博主私聊哟!

联系Q:3041893695

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值