APP爬虫之央视新闻

目标:爬取央视新闻2020年一月份的所有新闻数据

需求:首先除了基本pycharm配置之外,你还需要一步手机或者一模拟器(这里使用雷电模拟器),以及用于抓包的工具(我使用的是fiddle)

打开你安装好的央视新闻APP和我的fiddle(记得配置好fiddle和雷电)
在这里插入图片描述
选择要爬取的时间链,我选择了1月1日的

往fiddle找找找,找到了新闻的的标题和新闻的url位置:
在这里插入图片描述
在这里插入图片描述
央视新闻往下拉,刷新新闻,继续得到所要请求的网址,再更改时间链,找找找,找网址
在这里插入图片描述
我们会发现以上两个会改变的地方,可以猜到p就是页(肯定),putData就是发布时间(可能是,先做猜测),复制一份到百度时间戳转换下就验证了猜测

所以我们要对它们进行构建,你们可以尝试去构建时间戳,这里就不演示了因为仔细一裘你会发现这分明就是个等差数列。

仔细瞅瞅代码:

import requests
from time import sleep

url = 'http://api.cportal.cctv.com/api/rest/articleInfo/getScrollList'
headers = {
    你的headers
}


def get_params(pg, pub_date):
    return {
        'n': '20',    
        'version': '1',
        'p': pg,
        'pubDate': pub_date,
    }


page = 0
time_stamp = 1577875564000
count = 0      # 用来计算天数,如果超过31天就是2月份了,我没有去分析跨月份的规律是不是也是这样
while True:
    page += 1
    response = requests.get(url, params=get_params(page, time_stamp), headers=headers)
    result = response.json()['itemList']
    # print(result)
    if result:
        for data in result:
            news_url = data['detailUrl']
            news_title = data['itemTitle']
            print(news_title + '\t' + news_url)
    if len(result) == 0:
        page = 0
        time_stamp += 86464000
        count += 1
    sleep(2)
    if count > 31:      
        break

在这里插入图片描述
如有疑问,请在下方留言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值