-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path2024研究报告获取与投资决策.py
More file actions
136 lines (62 loc) · 2.55 KB
/
Copy path2024研究报告获取与投资决策.py
File metadata and controls
136 lines (62 loc) · 2.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
##################################################################
#
# 基于评级报告的投资决策分析
#
####################################################################
## 获取券商研报网站的表格数据
### 文件形式的表格数据——世界银行项目表
import request
url = "http://search.worldbank.org/api/projects/all.csv"
res = request.get(url)
file = open('世界银行项目表.csv','wb')
file.write(res.content)
file.close()
url = 'http://images.china-pub.com/ebook/jpg'
res = request.get(url)
file = open('图片.jpg','wb')
file.write(res.content)
file.close()
### 网页形式的表格数据——新浪财经大宗交易表格
import pandas as pd
table = pd.read_html(url)
url = 'http://vip.stock.finance.sina.com.cn/q/go.php/vInvestConsult/kind/dzjy/index.phtml'
table = pd.read_html(url)[0]
print(table)
table.to_excel('大宗交易表.xlsx')
### 用Selenium 库爬取和讯研报网表格数据
from selenium import webdriver
# 设置无界面浏览器模式,不弹出模拟浏览器窗口,让程序在后台运行。
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
browser = webdriver.Chrome(options=chrome_options)
## 访问网页并获取网页源代码;
url = 'http"//yanbao.stock.hexun.com/ybsj5.shtml"
browser.get(url)
data = browser.page_source
import pandas as pd
table = pd.read_html(data)[0]
import re
p_code = '<a href="yb_(.*?).shtml'
code = re.findall(p_code,data)
table['股票代码'] = code
url = 'http://yanbao.stock.hexun.com/ybsj5_' + str(pg) +'.shtml'
import pandas as pd
from selenium import webdriver
import re
# 设置无界面浏览器模式
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
browser = webdriver.Chrome(options=chrome_options)
data_all = pd.DataFrame() # 创建一个空列表来汇总所有表格数据;
for pg in range(1,176): # 可以将页码数调小进行快速尝试;
url = 'http://yanbao.stock.hexun.com/ybsj5_'+ str(pg) + '.shtml'
browser.get(url) #通过Selenium 库访问网页;
data = browser.page_source # 获取网页源代码
table = pd.read_html(data)[0] #通过pandas 库提取表格数据;
# 添加股票代码
p_code = '<a href="yb_(.*?).shtml'
code = re.findall(p_code,data)
table['股票代码'] = code
# 通过concat 函数将各页的表格纵向拼接成一个总的DataFrame
data_all = pd.concat([data_all,table],ignore_index=True)
data_all.to_excel('分析师评级报告.xlsx',indx=False)