• 爬取动态分页数据案例


    需求:

    爬取东方财富证券http://kuaixun.eastmoney.com/ssgs.html的财经新闻数据
    1.爬取页面中的标题和对应的内容:【标题】内容
    2.进行分页操作,爬取当前页面所有页码对应的标题和内容数据
    3.不可以使用selenium
    4.进行任意形式的持久化存储

    代码:

    通过对网站的分析发现翻页时,有ajax数据包分析数据包的url发现,翻页改变url中的参数,共20页

    #url— http://kuaixun.eastmoney.com/ssgs.html
    import requests
    import json
    import re
    headers = {
       'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.12 Safari/537.36'
    }
    # 通过对网站的分析发现翻页时,有ajax数据包分析数据包的url发现,翻页改变url中的参数,共20页
    url = "http://newsapi.eastmoney.com/kuaixun/v1/getlist_103_ajaxResult_50_{}_.html"
    for i in range(1,21):
        url2 = url.format(i)
        page_text = requests.get(url=url2, headers=headers).text
        page_str = re.findall('{.*}',page_text)[0]
        page_dic = json.loads(page_str)
        page_list = page_dic["LivesList"]
        
        content_list = []
        for dic in page_list:
            content = dic["digest"]
            content_list.append(content)
        
        # 分页存储
        with open(f"./第{i}页新闻","w",encoding='utf-8') as fp:
            fp.write('
    '.join(content_list))
        print(f"第{i}页新闻存储成功")
  • 相关阅读:
    常见错误3——错误2 error C2143: 语法错误 : 缺少“;”(在“}”的前面)
    MFC DLL封装窗体详细步骤
    指针函数与函数指针的区别
    DOM
    BOM
    JS动态创建元素
    JS节点
    事件和节点部分总结
    DOM基础
    自定义对象
  • 原文地址:https://www.cnblogs.com/zwq-/p/10624111.html
Copyright © 2020-2023  润新知