V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  sjmcefc2  ›  全部回复第 12 页 / 共 41 页
回复总数  820
1 ... 8  9  10  11  12  13  14  15  16  17 ... 41  
r 呢? r cookbook ?
2022-03-17 21:49:54 +08:00
回复了 sjmcefc2 创建的主题 程序员 审计公司怎么整理产生的各类文档呢?
@wedfds 这些没啥用吧,只是普通的存档服务。没有一个流程和管理的概念啊
2022-03-16 14:31:04 +08:00
回复了 sjmcefc2 创建的主题 程序员 审计公司怎么整理产生的各类文档呢?
@wedfds 具体是什么呢
2022-03-16 10:19:55 +08:00
回复了 sjmcefc2 创建的主题 程序员 审计公司怎么整理产生的各类文档呢?
svn ? git?
@Explr 那我这个 e3 1240 看起来不行啊
看要求 ,这个 11 对硬件的要求并没有高啊
@emonber 官方版本可以跳过吗?
@lonelyeagle 安全稳定吗?不想重装系统好多年
2022-03-08 15:01:16 +08:00
回复了 monetto 创建的主题 程序员 大家都是怎么开始逐渐放弃自己的兴趣爱好的
@madlifer 超级同意,就是现在有什么好办法搞钱呢
2022-03-08 12:11:26 +08:00
回复了 sjmcefc2 创建的主题 新手求助 优倍快这家公司咋样?做的路由器感觉很难用啊
看大家回复,这家的产品还可以?
2022-03-07 21:53:00 +08:00
回复了 sjmcefc2 创建的主题 宽带症候群 请教一下花生壳蒲公英的安全机制,是否会被窃听呢?
是客服说的 md5 加密,所以我不信啊,另外,哪里有彩虹表啊
2022-03-06 15:19:31 +08:00
回复了 sjmcefc2 创建的主题 宽带症候群 请教一下花生壳蒲公英的安全机制,是否会被窃听呢?
是啊,相对就可以,不是裸奔就好。
说是 md5 加密
2022-02-20 21:10:20 +08:00
回复了 sjmcefc2 创建的主题 问与答 求教大家怎么用触摸板?比如不用按压触摸板选定文字?
win 下好像现在没有办法这样操作了
@512357301
2022-02-20 11:17:03 +08:00
回复了 sjmcefc2 创建的主题 问与答 求教大家怎么用触摸板?比如不用按压触摸板选定文字?
2022-02-17 22:15:20 +08:00
回复了 zhangfannn 创建的主题 程序员 图数据库现在应用广泛吗?
有没有人力资源的应用呢?
非常感谢。
@lyquan 感觉现在就是爬虫小白啊
总是提醒我有非法 url


{'keyBoardList': [], 'classifiedAnnouncements': []}
[]
@guoqiao 特别奇怪这个 [] ,感觉怎么也不应该出现这么一个 [] ,想不通啊
大概思路就是想着从巨潮网络下载 pdf 年报,取一个 org_id ,拼接出下载链接
# 这是一个示例 Python 脚本。

# 按 Shift+F10 执行或将其替换为您的代码。
# 按 双击 Shift 在所有地方搜索类、文件、工具窗口、操作和设置。


import requests
import random
import time
import pandas as pd
import json

download_path = 'http://static.cninfo.com.cn/'
saving_path = 'C:/Users/ja/PycharmProjects/report2020'

User_Agent = [
###这里自建一个 User_Agent 列表
] # 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'
}


###巨潮要获取数据,需要 ordid 字段,具体 post 的形式是'stock':'证券代码,ordid;'
def get_orgid(Namelist):
orglist = []
url = 'http://www.cninfo.com.cn/new/information/topSearch/detailOfQuery'
hd = {
'Host': 'www.cninfo.com.cn',
'Origin': 'http://www.cninfo.com.cn',
'Pragma': 'no-cache',
'Accept-Encoding': 'gzip,deflate',
'Connection': 'keep-alive',
'Content-Length': '70',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Accept': 'application/json,text/plain,*/*',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8'}
for name in Namelist:
data = {'keyWord': name,
'maxSecNum': 10,
'maxListNum': 5,
}
#print(data)
r = requests.post(url, headers=hd, data=data)
#print(r.json()['keyBoardList'])
org_id = r.json()['keyBoardList'][0]['orgId']
#print(org_id+'****'+name)
orglist.append(org_id)
##对列表去重
formatlist = list(set(orglist))
formatlist.sort(key=orglist.index)
return formatlist


def single_page(stock):
query_path = 'http://www.cninfo.com.cn/new/hisAnnouncement/query'
headers['User-Agent'] = random.choice(User_Agent) # 定义 User_Agent
print(stock)

query = {'pageNum': 1, # 页码
'pageSize': 30,
'tabName': 'fulltext',
'column': 'szse',
'stock': stock,
'searchkey': '',
'secid': '',
'plate': '',
'category': 'category_ndbg_szsh;', # 年度报告
'trade': '', # 行业
'seDate': '2020-11-27~2021-05-28' # 时间区间
}
namelist = requests.post(query_path, headers=headers, data=query)
single_page = namelist.json()['announcements']
print(len(single_page))
return single_page # json 中的年度报告信息


def saving(single_page): # 下载年报
headers = {'Host': 'static.cninfo.com.cn',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/90.0.818.66',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
'Cookie': 'routeId=.uc1'
}
for i in single_page:
if ('2020 年年度报告(更新后)' in i['announcementTitle']) or ('2020 年年度报告' in i['announcementTitle']) or (
'2020 年年度报告(修订版)' in i['announcementTitle']):
download = download_path + i["adjunctUrl"]
name = i["secCode"] + '_' + i['secName'] + '_' + i['announcementTitle'] + '.pdf'
file_path = saving_path + '/' + name
print(file_path)
time.sleep(random.random() * 2)
headers['User-Agent'] = random.choice(User_Agent)
r = requests.get(download, headers=headers)
time.sleep(10)
print(r.status_code)
f = open(file_path, "wb")
f.write(r.content)
f.close()
else:
continue


if __name__ == '__main__':
Sec = pd.read_excel('listed.xlsx', dtype={'code': 'object'}) # 读取 excel,证券代码+证券简称
#print(Sec)
Seclist = list(Sec['code']) # 证券代码转换成 list
#print(Seclist)
Namelist = list(Sec['name'])
#print(Namelist)
org_list = get_orgid(Namelist)
Sec['orgid'] = org_list
Sec.to_excel('listed.xlsx', sheet_name='Sheet2', index=False)
stock = ''
count = 0
##按行遍历
for rows in Sec.iterrows():
stock = str(rows[1]['code']) + ',' + str(rows[1]['orgid']) + ';'
try:
page_data = single_page(stock)
except:
print('page error, retrying')
try:
page_data = single_page(stock)
except:
print('page error!')
saving(page_data)
count = count + 1
print('共有', count, '家券商')
1 ... 8  9  10  11  12  13  14  15  16  17 ... 41  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3392 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 23ms · UTC 10:51 · PVG 18:51 · LAX 02:51 · JFK 05:51
Developed with CodeLauncher
♥ Do have faith in what you're doing.