php抓取网页数据插入数据库(把数据抽取的代码整理了下,作了个控制台程序)
优采云 发布时间: 2021-12-30 00:24php抓取网页数据插入数据库(把数据抽取的代码整理了下,作了个控制台程序)
今天整理了提取数据的代码,做了一个控制台程序。本程序主要抓取新浪网的行业数据、股票信息、日、周、月股价,并将数据存入数据库。代码下载地址在文末提供。代码可以运行。设置好数据库链接字符串后,就可以提取数据了。php
数据提取主要是寻找合适的数据源,分析提取数据。html
1、数据源
免费接口主要是各大门户网站和财经网站,如新浪网易财经频道,或东方财富、和讯等网站。节点
聚合数据库存接口等,专门用作接口。正则表达式
另外,如果想了解各种指数的成分股,比如上证50、深证300等指数的成分股,可以参考上证、深交所。这两个网站提供两个城市的所有*敏*感*词*,并提供Excel。下载后导入数据中。数据库
2、分析和提取数据
通过浏览器的F12或Fiddler查看网络请求数据。数据最好以json格式返回。json格式的数据很容易提取。使用 Newtonsoft.Json 将 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格式,需要用正则表达式提取出来。这取决于情况。正则表达式部分用于个人代码。接口
另外,为了防止网站界面变化,需要创建一个接口类来实现多个接口,供应用程序处理后续的网站界面变化。浏览器
转载:网络