【爬取新浪新闻搜索结果页】-将整个html保存下来

一、需求分析

目标网址:https://search.sina.com.cn/?q=%s&range=all&c=news&sort=time
需求分析:输入搜索关键字进入结果页,获取整个页面的html保存

搜索页
在这里插入图片描述
进入页面
在这里插入图片描述
需要将上图的html源码保存下来

二、代码及步骤实现

两种方法:

  1. 拼接参数,参数较多的时候适合这种,但是后面涉及分页的时候需要拼接特定参数,输入关键词等功能
  2. 请求页面响应数据,需要获得整个数据,针对反爬措施,使用参数的形式

分析浏览器包图:
确定url路由
在这里插入图片描述

获取参数包图分析

在这里插入图片描述
可以看到只有看到只有四个参数有值
在这里插入图片描述

import requests


def get_news1(key_word):
    '''
    使用requests.get方法的params参数来进行带参数的get请求的数据爬取。
    :param key_word:
    :return:
    '''
    # 确定基础url:?及其之前的内容
    base_url = 'https://search.sina.com.cn/?'
    # 准备参数字典
    params = {
        'q': key_word,
        'range': 'all',
        'c': 'news',
        'sort': 'time',
    }
    # 发送请求获取响应
    response = requests.get(url=base_url, params=params)

    with open(f'sina_{key_word}1.html', 'w', encoding='utf-8') as fp:
        fp.write(response.text)

def get_news2(key_word):
    '''
    通过拼接的方式
    这种方式比较好用,但是当参数比较多的时候,建议使用第一种。
    :param key_word:
    :return:
    '''
    base_url = 'https://search.sina.com.cn/?q=%s&range=all&c=news&sort=time'
    #发送请求获取响应
    response = requests.get(base_url %key_word)
    with open(f'sina_{key_word}2.html', 'w', encoding='utf-8') as fp:
        fp.write(response.text)
if __name__ == '__main__':
    key_word = input('请输入要爬取的新闻关键字:')
    get_news2(key_word)

三、结果分析

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值