控制器

//获取并插入

//XPath获取
public JsonResult Add(string url)
{
HtmlWeb web = new HtmlWeb();
HtmlDocument document = web.Load(url);
//创建html的节点
HtmlNode node1 = document.DocumentNode;
//获取需要的内容节点
string jiedian = "//*[@id='761dfa3c-837a-6ba5-6b1b-9fa9afad498e']";
//获取需要的内容
HtmlNode node2 = node1.SelectSingleNode(jiedian);
string con = node2.InnerText;
//字符串替换
string str1 = con.Replace("\r\n\t", "").Replace("\r\n\t", "").Replace("\r\n", ""); //字符串截取
string[] str2 = str1.Split('\t');
StringBuilder builder = new StringBuilder();
foreach (string item in str2 )
{
if (!string.IsNullOrEmpty(item.Trim()))
{
builder.Append("insert into Files values('" + item + "')");
}
}
string sql = builder.ToString();
int i = db.ExeNonQuery(sql);
return Json(i);
}

//读取

public JsonResult GetList()
{
string sql = "select * from Files";
DataTable dt = db.GetTable(sql);
List<FilesViewModel> list = new List<FilesViewModel>();
foreach (DataRow item in dt.Rows)
{
FilesViewModel files = new FilesViewModel();
files.Name = item["Name"].ToString();
list.Add(files);
}
return Json(list);
}

//视图采用ajax获取

<div>
<table>
<tr>
<td>Url:<input id="url" type="text" /><input id="Button1" type="button" value="开始爬取" onclick="paqu()" /></td>
</tr>
<tr>
<td>内容</td>
</tr>
<tbody id="content"> </tbody>
</table>
</div>
<script> function paqu() {
var url = $("#url").val();
$.ajax({
url: "/Files/Add",
type: "post",
data: { url: url },
success: function (data) {
if (data > ) {
alert("添加成功");
load();
}
}
})
} function load() {
$.ajax({
url: "/Files/GetList",
type: "post",
success: function (data) {
$("#content").empty();
$(data).each(function () {
var tr = "<tr><td>" + this.Name + "</td></tr>";
$("#content").append(tr);
})
}
})
}
</script>

MVC爬取网页指定内容到数据库的更多相关文章

  1. Python入门,以及简单爬取网页文本内容

    最近痴迷于Python的逻辑控制,还有爬虫的一方面,原本的目标是拷贝老师上课时U盘的数据.后来发现基础知识掌握的并不是很牢固.便去借了一本Python基础和两本爬虫框架的书.便开始了自己的入坑之旅 言 ...

  2. java实现多线程使用多个代理ip的方式爬取网页页面内容

    项目的目录结构 核心源码: package cn.edu.zyt.spider; import java.io.BufferedInputStream; import java.io.FileInpu ...

  3. [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】

    [python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...

  4. Python爬取豆瓣指定书籍的短评

    Python爬取豆瓣指定书籍的短评 #!/usr/bin/python # coding=utf-8 import re import sys import time import random im ...

  5. 使用webdriver+urllib爬取网页数据(模拟登陆,过验证码)

    urilib是python的标准库,当我们使用Python爬取网页数据时,往往用的是urllib模块,通过调用urllib模块的urlopen(url)方法返回网页对象,并使用read()方法获得ur ...

  6. 5分钟掌握智联招聘网站爬取并保存到MongoDB数据库

    前言 本次主题分两篇文章来介绍: 一.数据采集 二.数据分析 第一篇先来介绍数据采集,即用python爬取网站数据. 1 运行环境和python库 先说下运行环境: python3.5 windows ...

  7. python3爬虫爬取网页思路及常见问题(原创)

    学习爬虫有一段时间了,对遇到的一些问题进行一下总结. 爬虫流程可大致分为:请求网页(request),获取响应(response),解析(parse),保存(save). 下面分别说下这几个过程中可以 ...

  8. 【网络爬虫】【python】网络爬虫(五):scrapy爬虫初探——爬取网页及选择器

    在上一篇文章的末尾,我们创建了一个scrapy框架的爬虫项目test,现在来运行下一个简单的爬虫,看看scrapy爬取的过程是怎样的. 一.爬虫类编写(spider.py) from scrapy.s ...

  9. Python使用urllib,urllib3,requests库+beautifulsoup爬取网页

    Python使用urllib/urllib3/requests库+beautifulsoup爬取网页 urllib urllib3 requests 笔者在爬取时遇到的问题 1.结果不全 2.'抓取失 ...

随机推荐

  1. 在Spring的Bean注入中,即使你私有化构造函数,默认他还是会去调用你的私有构造函数去实例化

    在Spring的Bean注入中,即使你私有化构造函数,默认他还是会去调用你的私有构造函数去实例化. 如果我们想保证实例的单一性,就要在定义<bean>时加上factory-method=” ...

  2. C和C指针小记(九)-指针用法1

    1. *p++ 最常用的一个指针的用法,就是在循环中用来迭代. *p++ 共有3步操作: 1.++操作符把p所指向的内存中的值复制一份 2.++操作符把p加1(实际是一个p所指内存单元的大小,这也是编 ...

  3. Linear transformations. 线性变换与矩阵的关系

    0.2.2 Linear transformations. Let U be an n-dimensional vector space and let V be an m-dimensional v ...

  4. Delphi maskedit控件的掩码含义及用法方法

    Delphi maskedit控件的掩码含义及用法方法   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 ...

  5. day5_函数_判断小数

    def check_float(s): ''' #这个函数的作用就是判断传入的字符串是否是合法的消失 :param s: 传入一个字符串 :return: True/False ''' s = str ...

  6. python,re模块正则

    python没有正则需要导入re模块调用.正则表达式是为了匹配字符串,动态模糊的匹配,只要有返回就匹配到了, 没返回就没匹配到,前面是格式后面是字符串 最常用的匹配语法: re.match()#麦驰, ...

  7. LeetCode 976 Largest Perimeter Triangle 解题报告

    题目要求 Given an array A of positive lengths, return the largest perimeter of a triangle with non-zero ...

  8. es基本修改相关的

    一.修改mapping POST linewell_assets_mgt_es/lw_devices/_mapping { "lw_devices": { "proper ...

  9. 关于javascript中defineProperty的学习

    语法 Object.defineProperty(obj, prop, descriptor) 参数 obj 要在其上定义属性的对象. prop 要定义或修改的属性的名称. descriptor 将被 ...

  10. ubuntu14.04下开启ssh服务

    1. 安装 sudo apt-get update sudo apt-get install openssh-server 2.开启服务 查看查看ssh服务是否启动 打开"终端窗口" ...