打开巨潮资讯的基金招募说明书页面:
http://www.cninfo.com.cn/new/fulltextSearch/full?searchkey=%E5%B0%81%E9%97%AD%E5%BC%8F%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E8%AF%81%E5%88%B8%E6%8A%95%E8%B5%84%E5%9F%BA%E9%87%91%E6%8B%9B%E5%8B%9F%E8%AF%B4%E6%98%8E%E4%B9%A6&sdate=&edate=&isfulltext=false&sortName=pubdate&sortType=desc&pageNum=1&pageSize=20&type=
动态网页,返回json数据:
"adjunctUrl": "finalpage/2024-06-08/1220300147.PDF",
{
"classifiedAnnouncements": null,
"totalSecurities": 0,
"totalAnnouncement": 141,
"totalRecordNum": 141,
"announcements": [
{
"id": null,
"secCode": "180601",
"secName": "华夏华润商业REIT",
"orgId": "jjjl0000031",
"announcementId": "1220300147",
"announcementTitle": "华夏华润商业REIT:华夏华润商业资产<em>封闭式</em><em>基础设施</em><em>证券投资基金</em><em>招募</em><em>说明书</em>更新",
"announcementTime": 1717776000000,
"adjunctUrl": "finalpage/2024-06-08/1220300147.PDF",
"adjunctSize": 6265,
"adjunctType": "PDF",
"storageTime": null,
"columnId": "09020302||250601",
"pageColumn": "SZJJ",
"announcementType": "0101050916||0101050917||013511",
"associateAnnouncement": null,
"important": null,
"batchNum": null,
"announcementContent": null,
"orgName": null,
"tileSecName": "华夏华润商业REIT",
"shortTitle": "华夏华润商业资产<em>封闭式</em><em>基础设施</em><em>证券投资基金</em><em>招募</em><em>说明书</em>更新",
"announcementTypeName": null,
"secNameList": null
},
在ChatGPT中输入提示词:
你是一个Python编程专家,要完成一个批量下载网页PDF的Python脚本,具体步骤如下;
解析网页:http://www.cninfo.com.cn/new/fulltextSearch/full?searchkey=%E5%B0%81%E9%97%AD%E5%BC%8F%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E8%AF%81%E5%88%B8%E6%8A%95%E8%B5%84%E5%9F%BA%E9%87%91%E6%8B%9B%E5%8B%9F%E8%AF%B4%E6%98%8E%E4%B9%A6&sdate=&edate=&isfulltext=false&sortName=pubdate&sortType=desc&pageNum={pagenumber}&pageSize=20&type=
{pagenumber}的值从1开始,以1递增,到8结束;
获取网站的响应,这是一个json数据;
提取"announcements"键的值,这个值也是一个json数据;
从这个json数据中提取"announcementTitle"键的值,作为PDF文件的标题,写入Excel表格第1列;
从这个json数据中提取"adjunctUrl"键的值,前面加上“http://static.cninfo.com.cn/”,作为PDF文件的下载地址,写入Excel表格第2列;
保存Excel文件, Excel文件保存在文件夹:F:\AI自媒体内容\AI炒股\REITs,Excel文件名为:REITspdf.xlsx
注意:
每一步都输出信息到屏幕上,每一步添加调试信息,以便详细检查每一步是否正常工作;
每读取一页,随机暂停3-7秒;
PDF文件名要进行清洗处理,因为其中可能包含不符合windows系统命名规范的字符,处理文件名中的 HTML 实体,去除 <em> 和 </em> 标签,文件名中的特殊字符(如:)和无效字符替换为“_” 避免无效字符导致文件系统错误
设置请求标头:
Accept:
application/json, text/javascript, */*; q=0.01
Accept-Encoding:
gzip, deflate
Accept-Language:
zh-CN,zh;q=0.9,en;q=0.8
Connection:
keep-alive
Host:
http://www.cninfo.com.cn
Referer:
http://www.cninfo.com.cn/new/fulltextSearch?notautosubmit=&keyWord=%E5%B0%81%E9%97%AD%E5%BC%8F%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E8%AF%81%E5%88%B8%E6%8A%95%E8%B5%84%E5%9F%BA%E9%87%91%E6%8B%9B%E5%8B%9F%E8%AF%B4%E6%98%8E%E4%B9%A6
User-Agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36
X-Requested-With:
XMLHttpRequest
这样就把所有说明书的名称和下载地址获取到了,然后导入迅雷批量下载。
下载完成后,进行重命名,在chatgpt中输入提示词:
你是一个Python编程专家,要完成一个批量重命名的Python脚本,具体步骤如下;
逐个读取文件夹里面的PDF文件:D:\文档任务组_20240617_1112,获取PDF文件主文件名,设为变量{pdfname1};
读取Excel文件:"F:\AI自媒体内容\AI炒股\REITs\REITspdf.xlsx"第2列全部内容,提取第三个”/”和”.PDF”之间的内容,设为变量{pdfname2},比如:http://static.cninfo.com.cn/finalpage/2022-08-02/1214190987.PDF,应该提取的内容是“1214190987”;
将{pdfname1}与所有的{pdfname2}进行比较,如果两者一致,那么用{pdfname2}所对应的第1列单元格内容作为新的PDF主文件名,重命名这个PDF文件;
注意:
每一步都输出信息到屏幕上,每一步添加调试信息,以便详细检查每一步是否正常工作;