php抓取网页数据插入数据库(把数据抽取的代码整理了下,作了个控制台程序)

优采云 发布时间: 2021-12-30 00:24

  php抓取网页数据插入数据库(把数据抽取的代码整理了下,作了个控制台程序)

  今天整理了提取数据的代码,做了一个控制台程序。本程序主要抓取新浪网的行业数据、股票信息、日、周、月股价,并将数据存入数据库。代码下载地址在文末提供。代码可以运行。设置好数据库链接字符串后,就可以提取数据了。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格式,需要用正则表达式提取出来。这取决于情况。正则表达式部分用于个人代码。接口

  另外,为了防止网站界面变化,需要创建一个接口类来实现多个接口,供应用程序处理后续的网站界面变化。浏览器

  转载:网络

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线