如何抓取网页数据(数据抽取的代码整理了下,做了个控制台程序)
优采云 发布时间: 2022-04-18 18:31如何抓取网页数据(数据抽取的代码整理了下,做了个控制台程序)
今天整理了数据提取的代码,做了一个控制台程序。本程序主要采集新浪网的行业数据、股票信息、每日、每周、每月的股价数据,并将数据存入数据库。文章最后提供代码下载地址。代码可以运行。设置好数据库连接字符串后,就可以提取数据了。
数据抽取主要是寻找合适的数据源,对数据进行分析和提取。
一、数据源
免费接口主要是各大门户网站网站和财经网站,比如新浪网易的财经频道,或者东方财富和和讯网站。
专用于接口等的聚合数据库存接口
另外,如果想了解各种指数的成分股,比如上证50、深300等指数的成分股,可以参考上证、深证。这两个网站提供了两个城市的所有*敏*感*词*。,提供Excel下载,下载后可导入数据。
二、分析和提取数据
通过浏览器的F12或Fiddler查看网络请求数据。数据最好以 json 格式返回。json格式的数据很容易提取。使用Newtonsoft.Json将json对象转化为动态对象,访问json数据非常方便。在使用动态对象之前,总是先创建一个与json对象一致的类,然后再进行反序列化,这样就不再需要了。代码示例如下:
public IList GetStocks(DataAccess.StockCategory category)
{
var url = "http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData?page=1&num=900&sort=symbol&asc=1&node={0}&symbol=&_s_r_a=init";
url = string.Format(url, category.code.Trim('"'));
string content = getRequestContent(url);
dynamic stocks = Newtonsoft.Json.JsonConvert.DeserializeObject(content);
IList list = new List();
foreach (var stock in stocks)
{
list.Add(new DataAccess.Stock
{
code = stock.code,
symbol = stock.symbol,
name = stock.name
});
}
return list;
}
如果返回的数据不是json格式,需要用正则表达式提取。对此,视情况而定。我的部分代码中使用了正则表达式。
另外,为了防止网站接口发生变化,还需要创建一个接口类来多实现几个接口供应用程序处理网站接口的后续变化。
转载: