-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path面试
57 lines (51 loc) · 2.28 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
#第一题
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 设置请求头信息
HEADERS = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 设置请求参数
PARAMS = {'bondType': 'Treasury Bond', 'issueYear': '2023'}
# 发送网络请求
url = "https://iftp.chinamoney.com.cn/english/bdInfo/"
res = requests.get(url, params=PARAMS, headers=HEADERS)
soup = BeautifulSoup(res.text, 'html.parser')# 找到目标表格
print(soup)
#print(table)
table = soup.find('table', attrs={'class': 'result-list'})
print(table)
# 处理表格数据
rows = []
for tr in table.find_all('tr'):
row = []
for td in tr.find_all('td'):
row.append(td.text.strip())
if len(row) > 0:
rows.append(row)
# 将数据存储到Pandas DataFrame中
df = pd.DataFrame(rows[1:], columns=rows[0]).iloc[:, :6]
# 将DataFrame保存成CSV文件
df.to_csv('treasury_bond_2023.csv', index=False)
#第二题
import re
def reg_search(text, regex_list):
results = []
for regex_dict in regex_list:
result_dict = {}
for key, value in regex_dict.items():
pattern = re.compile(value, re.M)
match = pattern.search(text)
if match:
if key == '标的证券':
result_dict[key] = re.search(r'([0-9]{6}\.[A-Z]+)', match.group()).group()
elif key == '换股期限':
result_dict[key] = re.findall(r'(\d{4} 年 \d{1,2} 月 \d{1,2} 日)', match.group())
results.append(result_dict)
return results
text = '''标的证券:本期发行的证券为可交换为发行人所持中国长江电力股份 有限公司股票(股票代码:600900.SH,股票简称:长江电力)的可交换公司债券。 换股期限:本期可交换公司债券换股期限自可交换公司债券发行结束 之日满 12 个月后的第一个交易日起至可交换债券到期日止,即 2023 年 6 月 2 日至 2027 年 6 月 1 日止。'''
regex_list=[{
'标的证券': '(股票代码:\d{6}\.[A-Z]+)',
'换股期限': '(\d{4} 年 \d{1,2} 月 \d{1,2} 日)'
}]
results = reg_search(text, regex_list)
print(results)