python爬虫爬取巨潮资讯网的pdf文件

简单的网络请求,获取文件的标识(announcementId),将要爬取的全部文件的id保存在数组中,因为在获取pdf网址时(announcementId)为发送post请求的唯一标识。

if __name__ == '__main__':
    #通过ajex请求,获取请求数据的接口
    url = 'http://www.cninfo.com.cn/new/hisAnnouncement/query'
    #决定爬取的页数
    for pageNum in range(1,3):
        param = {
            'pageNum': pageNum,
            'pageSize': '30',
            'column': 'szse',
            'tabName': 'fulltext',
            'plate': '',
            'stock': '',
            'searchkey': '',
            'secid': '',
            'category': '',
            'trade': '',
            'seDate': '2021-12-07~2022-06-07',
            'sortName': '',
            'sortType': '',
            'isHLtitle': 'true',
        }
        #进行ua伪装
        head={
            "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"

        }
        #保存每个公司的标识
        id_list = []
        response=requests.post(url=url,headers=head,data=param)
        data_list=response.json()
        print(data_list)
        for dic in data_list['announcements']:
            id_list.append(dic['announcementId'])
        print(id_list)

响应方式和请求的网址

响应得到的数据

 开始根据(announcementId)获取pdf文件的网址。 

#获取详情数据,详细数据的请求接口
post_url='http://www.cninfo.com.cn/new/announcement/bulletin_detail'
for announcementId in id_list:
    hea = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"

    }




   #获取当天时间
    t = time.localtime()
    print(time.strftime("%Y-%m-%d", t))
    # 拼接接口需要的标识信息
    data = {
        'announceId': announcementId,
        'flag':'true',
        'announceTime':'time.strftime("%Y-%m-%d", t)',
    }
    last_list=requests.post(url=post_url,headers=hea,params=data).json()
    #打印获取的网址和文件标题
    print(last_list['fileUrl'])
    print(last_list['announcement']['announcementTitle'])

 根据请求url和params得知需要的标识

响应获取的json数据

 根据得到的网址将pdf文件保存到save文件夹中并命名

responsepdf = requests.get(last_list['fileUrl'])
    if responsepdf.status_code == 200:
        with open(r".\save\%s.pdf" % last_list['announcement']['announcementTitle'], "wb") as code:
            code.write(responsepdf.content)

代码直接粘贴即可运行,有问题可以留言,看到会回复,

  • 8
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值