python3爬取巨潮资讯网的年报数据

  • 前期准备:
  • 需要用到的库:
  • 完整代码:

前期准备:

巨潮资讯网有反爬虫机制,所以先打开巨潮资讯网的年报板块,看看有什么解决办法。
巨潮咨询年报板块



可以通过这样的方式获取单页年报的数据,数据格式为json。其中包括年报名称,地址等数据。
所以思路就是,先通过单页的数据,然后在对每页中的年报数据进行下载。

需要用到的库:

import requests
import random                  #随机生成爬虫休眠时间
import time

完整代码:

import requests
import random
import timedownload_path= 'http://static.cninfo.com.cn/'
saving_path= 'E://2018年报sz'User_Agent= ["Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)","Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)","Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)","Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)","Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6","Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1","Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0"]                                #User_Agent的集合headers= {'Accept': 'application/json, text/javascript, */*; q=0.01',"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8","Accept-Encoding": "gzip, deflate","Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-HK;q=0.6,zh-TW;q=0.5",'Host': 'www.cninfo.com.cn','Origin': 'http://www.cninfo.com.cn','Referer': 'http://www.cninfo.com.cn/new/commonUrl?url=disclosure/list/notice','X-Requested-With': 'XMLHttpRequest'}def single_page(page):query_path= 'http://www.cninfo.com.cn/new/hisAnnouncement/query'headers['User-Agent']= random.choice(User_Agent)      #定义User_Agentquery= {'pageNum': page,                            #页码'pageSize': 30,                                    'tabName': 'fulltext','column': 'szse',                                    #深交所'stock': '','searchkey': '','secid': '','plate': 'sz','category': 'category_ndbg_szsh;',     #年度报告'trade': '','seDate': '2000-01-01+~+2019-04-26'     #时间区间}namelist= requests.post(query_path,headers = headers,data = query)print(page, '*********')return namelist.json()['announcements']        #json中的年度报告信息def saving(single_page):          #下载年报headers= {'Accept': 'application/json, text/javascript, */*; q=0.01',"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8","Accept-Encoding": "gzip, deflate","Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-HK;q=0.6,zh-TW;q=0.5",'Host': 'www.cninfo.com.cn','Origin': 'http://www.cninfo.com.cn'}for i in single_page:if i['announcementTitle']== '2018年年度报告(更新后)' or i['announcementTitle']== '2018年年度报告':download= download_path+ i["adjunctUrl"]name= i["secCode"]+ '_' + i['secName']+ '_' + i['announcementTitle']+ '.pdf'if '*' in name:name= name.replace('*','')file_path= saving_path+ '//' + nametime.sleep(random.random()* 2)headers['User-Agent']= random.choice(User_Agent)r= requests.get(download,headers = headers)f= open(file_path, "wb")f.write(r.content)f.close()print(name)else:continuedef spy_save(page):try:page_data = single_page(page)except:print(page,'page error, retrying')try:page_data= single_page(page)except:print(page,'page error')     saving(page_data )

后续还可以通过使用代理,使用多进程来 提高爬取效率以及减少被反爬虫封禁的可能。

python3爬取巨潮资讯网的年报数据相关推荐

  1. python3爬取巨潮资讯网站年报数据

    python3爬取巨潮资讯网站年报数据 2018年年底巨潮资讯http://www.cninfo.com.cn改版了,之前实习生从网上找的脚本不能用了,因此重新修改了下爬取脚本.最初脚本的原链接忘了, ...

  2. 批量爬取巨潮资讯网中“贵州茅台”相关公告的PDF文件。

    1 需求 批量爬取巨潮资讯网中"贵州茅台"相关公告的PDF文件. 2 代码实现 import reimport requests from selenium import webd ...

  3. 基于python+selenium+Chrome自动化爬取巨潮资讯网A股财务报表

    转自同学的博客 引言: 网页爬虫分为静态网页爬虫和动态网页爬虫,前者是指索要获取的网页内容不需要经过js运算或者人工交互, 后者是指获取的内容必须要经过js运算或者人工交互.这里的js运算可能是aja ...

  4. python3爬取数据_python3爬取巨潮资讯网站年报数据

    python3爬取巨潮资讯网站年报数据 2018年年底巨潮资讯http://www.cninfo.com.cn改版了,之前实习生从网上找的脚本不能用了,因此重新修改了下爬取脚本.最初脚本的原链接忘了, ...

  5. 爬虫|巨潮资讯网上市公司年报爬取

    爬虫|巨潮资讯网上市公司年报爬取 import pandas as pd from selenium import webdriver from selenium.webdriver.common.k ...

  6. python 爬虫 requests+BeautifulSoup 爬取巨潮资讯公司概况代码实例

    第一次写一个算是比较完整的爬虫,自我感觉极差啊,代码low,效率差,也没有保存到本地文件或者数据库,强行使用了一波多线程导致数据顺序发生了变化... 贴在这里,引以为戒吧. # -*- coding: ...

  7. 巧用selenium爬取巨潮资讯公司数据

    巧用selenium爬取巨潮资讯公司数据 立项背景:在做深度学习的过程中利用python进行建模,需要数据来训练模型. 项目目标:通过运用python的selenium模块,爬取巨潮资讯网站关于公司的 ...

  8. selenium爬取巨潮资讯指定领域下所有上市公司的数据并存储到csv文件

    selenium爬取巨潮资讯指定领域下所有上市公司的数据并存储到csv文件 from selenium.webdriver import Chrome #引入selenium中的Chrome from ...

  9. 请用Python语言写一个巨潮资讯网批量下载PDF的程序

    下面是一个使用 Python 的简单程序,可以批量下载巨潮资讯网上的 PDF 文件: import requests import os# 巨潮资讯网 PDF 文件的 URL 前缀 url_prefi ...

最新文章

  1. AIO-3128C四核高性能主板
  2. c++中的变量作用范围
  3. 建立ARM交叉编译环境 (arm-none-linux-gnueabi-gcc with EABI)
  4. 蓝桥杯嵌入式第七届模拟题 代码
  5. ISCC2014-reverse
  6. 你实现团队管理了吗?
  7. Unity基础-图形渲染
  8. VUE前端+Node后台模拟打印机Web即时打印
  9. 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure
  10. HTML5之插入图片
  11. continuity不收敛的问题
  12. 微信小程序跳转公众号图文内容
  13. PowerCHM-强大的CHM工具
  14. 京东android面试题2019,2019京东的面试题(牛客)
  15. python字母对应数字上海迪士尼残疾人门票_所有景点提供无障碍设施 残障人士也能玩转上海迪士尼...
  16. 小清新风格的微信公众号图文这样排版,看过的都说好。
  17. SQLServer中uniqueidentifier数据类型理解
  18. 怎么在局域网中查找一台电脑连接到的交换机端口?(实测可用,CISCO 交换机环境)
  19. c印记(二):lw_oopc简介
  20. 计算机专业笔记本硬盘256G,老笔记本重获新生 东芝256G固态硬盘体验

热门文章

  1. 将数据集Voc .xml转为Matlab 的GroundTruth
  2. 基于SL773-2018计算土壤流失量的Python实现
  3. 减治法在组合问题中的应用 ——8枚硬币问题
  4. vb中randomize和rnd函数的使用区别
  5. 你的浏览器正在排斥 IPv6
  6. 视频监控存储空间的算法
  7. Solaris 常见问题
  8. 博德之门 linux x32,GOG.com
  9. 嗓子不舒服怎么办?咽干咽痛痰多咳嗽怎么办?
  10. 渭南师范计算机学院男女比例,全国高校男女比例大揭秘!去这些大学怕是要单身四年了...