import requests import re import pandas as pd import time import datetime url = 'http://datacenter-web.eastmoney.com/api/data/v1/get?' name_list = [] code_list = [] trader_date_list = [] close_list = [] change_rate_list = [] buy_num_list = [] result_list = [] result_df = pd.DataFrame() for page in range(1, 4): params = ( ('callback', 'jQuery112305930880286224138_1632364981303'), ('sortColumns', 'NET_BUY_AMT,TRADE_DATE,SECURITY_CODE'), ('sortTypes', '-1,-1,1'), ('pageSize', '50'), ('pageNumber', str(page)), ('reportName', 'RPT_ORGANIZATION_TRADE_DETAILS'), ('columns', 'ALL'), ('source', 'WEB'), ('clientl', 'WE'), ('filter', "(TRADE_DATE>='2021-09-17')") ) response = requests.get(url, params=params) text = response.text print(text) # re准则查找数据 name = re.findall('"SECURITY_NAME_ABBR":"(.*?)"', text) # 名称 code = re.findall('"SECURITY_CODE":"(.*?)"', text) # 股票代码 trader_date = re.findall('"TRADE_DATE":"(.*?)"', text) # 交易日期 close = re.findall('"CLOSE_PRICE":(.*?)\,', text) # 收盘价 change_rate = re.findall('"CHANGE_RATE":(.*?)\,', text) # 涨幅 buy_num = re.findall('"BUY_TIMES":(.*?)\,', text) # 买入机构数量 # 将对应的列表里的数据全部加起来 name_list = name_list + name code_list = code_list + code trader_date_list = trader_date_list + trader_date close_list = close_list + close change_rate_list = change_rate_list + change_rate buy_num_list = buy_num_list + buy_num time.sleep(2) # 将所有列表合并成二维数组 result_list = [trader_date_list, code_list, name_list, close_list, change_rate_list, buy_num_list] # 将数据转为DataFrame格式 result_df = pd.DataFrame(result_list).T.rename( columns={0: '交易日期', 1: '股票代码', 2: '股票名称', 3: '收盘价', 4: '涨幅', 5: '买入机构'}) result_df['交易日期'] = pd.to_datetime(result_df['交易日期']) # 时间只取年月日 result_df = result_df.sort_values(by='交易日期', ascending=True) print(result_df)注释
时间: 2024-04-27 11:23:58 浏览: 10
这是一段 Python 代码,用于爬取东方财富网的机构交易数据。代码使用 requests 库向数据接口发起请求,然后使用正则表达式从返回的 JSON 数据中提取出所需信息,最后将数据整合成 pandas DataFrame 格式并输出。具体来说,代码循环爬取 3 页数据,每页包含 50 条交易记录。请求参数中的 filter 参数表示只爬取交易日期在 2021-09-17 及之后的数据。最后输出的 DataFrame 包含交易日期、股票代码、股票名称、收盘价、涨幅和买入机构等信息。
相关问题
解释下列代码import requests import time url = 'https://www.example.com' num_requests = 10
这段代码是在Python中引入了requests和time两个模块,并定义了一个URL变量表示目标网站的地址,还定义了一个num_requests变量表示需要发送的请求次数,在此示例中是10次。这些变量可以在后面的代码中被使用。requests模块可以用来发送HTTP请求,time模块可以用来控制代码执行的时间间隔。
使用Python爬取http://www.lube-info.com/2017/1221/6642.html网页内容
以下是使用Python爬取网页内容的方法:
```python
# 引入requests库和BeautifulSoup库
import requests
from bs4 import BeautifulSoup
# 发送请求获取网页内容
url = 'http://www.lube-info.com/2017/1221/6642.html'
response = requests.get(url)
html = response.text
# 解析网页内容
soup = BeautifulSoup(html, 'html.parser')
content = soup.find('div', class_='content').get_text()
# 输出网页内容
print(content)
```
以上代码中,我们首先使用requests库发送请求获取网页内容,然后使用BeautifulSoup库解析网页内容,最后找到网页中我们需要的内容并输出。需要注意的是,我们在使用BeautifulSoup库解析网页内容时,需要指定解析器为'html.parser',并且使用get_text()方法获取文本内容。