爬取“新浪财经-股票-行情-北交所”的全部5页共200支股票数据,并将爬取的200条股票数据写入“csv文件。 实验原理
时间: 2024-04-01 07:31:05 浏览: 166
股票分析练习.csv
爬取“新浪财经-股票-行情-北交所”的全部5页共200支股票数据的实验原理大致如下:
1. 首先需要确定要爬取的页面 URL,通过网络请求将 URL 发送给服务器。
2. 分析页面结构和元素,确定需要爬取的数据,如股票名称、代码、当前价格、涨跌幅等。
3. 使用 Python 的 requests 库发送网络请求,获取 HTML 数据。
4. 使用 BeautifulSoup 库解析 HTML 数据,获取所需的数据。
5. 将数据存储到列表中,遍历所有页面,将数据存储到一个列表中。
6. 使用 pandas 库将数据列表转换成 DataFrame 对象。
7. 使用 DataFrame 的 to_csv() 方法将数据写入 csv 文件。
具体实现过程可以参考以下步骤:
1. 导入必要的库
```
import requests
from bs4 import BeautifulSoup
import pandas as pd
```
2. 确定要爬取的页面 URL,遍历所有页面,获取数据
```
data = [] # 存储数据的列表
for i in range(1, 6): # 遍历所有页面
url = 'https://finance.sina.com.cn/stock/sjjhq/bjshydt/{}.shtml'.format(i)
r = requests.get(url)
r.encoding = 'utf-8'
soup = BeautifulSoup(r.text, 'html.parser')
table = soup.find('table', class_='tbl-data')
trs = table.find_all('tr')[1:] # 去掉表头行
for tr in trs:
tds = tr.find_all('td')
name = tds[0].text # 股票名称
code = tds[1].text # 股票代码
price = tds[2].text # 当前价格
change = tds[3].text # 涨跌幅
data.append([name, code, price, change])
```
3. 将数据存储到 DataFrame 对象中
```
columns = ['股票名称', '股票代码', '当前价格', '涨跌幅']
df = pd.DataFrame(data=data, columns=columns)
```
4. 将数据写入 csv 文件
```
df.to_csv('data.csv', index=False, encoding='utf-8-sig')
```
这样就完成了对“新浪财经-股票-行情-北交所”的全部5页共200支股票数据的爬取,并将爬取的200条股票数据写入 csv 文件的操作。
阅读全文