C#抓取网面上的html内容(JS动态生成的无法抓取)
抓取内容的代码:
/// </summary>
/// <param name="url">路径URL</param>
/// <param name="path">存储路径</param>
/// <returns></returns>
public static string HttpDownloadFile(string url, string path)
{
try
{
// 设置参数
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; //发送请求并获取相应回应数据
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
//直到request.GetResponse()程序才开始向目标网页发送Post请求
Stream responseStream = response.GetResponseStream(); //可以将生成的流文件直接生成字符串 SourceCode就是生成后的字符串
//StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8);
//string SourceCode = readStream.ReadToEnd(); //创建本地文件写入流
if (File.Exists(path))
{
File.Delete(path);
}
FileStream fs = File.Create(path);
fs.Close(); Stream stream = new FileStream(path, FileMode.Create);
byte[] bArr = new byte[];
int size = responseStream.Read(bArr, , (int)bArr.Length);
while (size > )
{
stream.Write(bArr, , size);
size = responseStream.Read(bArr, , (int)bArr.Length);
}
stream.Close();
responseStream.Close();
return path;
}
catch (Exception ex)
{ throw ex;
} }
调用方式:
HttpReviceFile.HttpDownloadFile("http://localhost:811/ ", @"D:\Work\Test.xml");
C#抓取网面上的html内容(JS动态生成的无法抓取)的更多相关文章
- js动态生成数据的抓取
需求:爬取https://www.xuexi.cn/f997e76a890b0e5a053c57b19f468436/018d244441062d8916dd472a4c6a0a0b.html页面中的 ...
- 抓取Js动态生成数据且以滚动页面方式分页的网页
代码也可以从我的开源项目HtmlExtractor中获取. 当我们在进行数据抓取的时候,如果目标网站是以Js的方式动态生成数据且以滚动页面的方式进行分页,那么我们该如何抓取呢? 如类似今日头条这样的网 ...
- 抓取js动态生成的数据分析案例
需求:爬取https://www.xuexi.cn/f997e76a890b0e5a053c57b19f468436/018d244441062d8916dd472a4c6a0a0b.html页面中的 ...
- 抓取js动态生成数据
最近在抓数据,一般的网页数据抓取相对容易一些,今天在抓电视猫的节目单,发现有些数据时抓取不到的,Java端得到的HTML文件里面没有某一段代码,查了很多资料,发现说是js动态生成的数据,无法直接抓取, ...
- 2)JS动态生成HTML元素的爬取
2)JS动态生成HTML元素的爬取 import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.W ...
- htmlunit爬虫工具使用--模拟浏览器发送请求,获取JS动态生成的页面内容
Htmlunit是一款模拟浏览抓取页面内容的java框架,具有js解析引擎(rhino),可以解析页面的js脚本,得到完整的页面内容,特殊适合于这种非完整页面的站点抓取. 下载地址: https:// ...
- js动态的属性名如何取该属性的值
var cls={cn1:"nihao",cn2="made",cn3="shuide"};var index=2;//可变获取cn2的值 ...
- js动态添加-表格逐行添加、删除、遍历取值
关于js对表格进行逐行添加,今天抽空整理了一下:新建一个html文件(没有编辑器的可以新建一个demo.txt文件,然后改后缀名为demo.html),把下面代码全部贴进去即可.功能包括:表格添加一行 ...
- 利用BeautifulSoup抓取新浪网页新闻的内容
第一次写的小爬虫,python确实功能很强大,二十来行的代码抓取内容并存储为一个txt文本 直接上代码 #coding = 'utf-8' import requests from bs4 impor ...
随机推荐
- [SaltStack] Multi-Master配置
Multi Master配置 从salt 0.16.0版本开始, 管理minions可以使用multi-master特性. 当使用multi-master时, 所有masters均可以正常运行, 任何 ...
- Hadoop-hdfs安装与配置
一.安装要求 安装JDK yum -y install jdk(或手动安装) 设置namenode节点到datanode节点的免密码登陆 a. 本地免密码登录 # ssh loc ...
- php--获取用户ip
一般在做登录的时候有的会要求同一个帐号不能同时用不同的ip登录,这个时候我们需要获取到用户IP地址 获取ip地址的函数: function getIP() { if (getenv('HTTP_CLI ...
- LeetCode OJ-- Populating Next Right Pointers in Each Node
https://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node/ 二叉树遍历的变种:树的节点多了个next指针 ...
- nodejs express 路由并显示html以及访问静态资源设置
var express = require('express'); var http = require('http'); var fs = require('fs'); var app = expr ...
- Android自定义Dialog多选对话框(Dialog+Listview+CheckBox)
先放效果截图 项目中需要有个Dialog全选对话框,点击全选全部选中,取消全选全部取消.下午查了些资料,重写了一下Dialog对话框.把代码放出来. public class MainActivity ...
- react 使用antd的多选功能做一个单选与全选效果
一个小而简单的单选全选功能,其实官网已经给出效果了,不过是我多做了些复合用法 addorupdatemodal.jsx import React from "react"; imp ...
- Xamarin XAML语言教程Visual Studio中实现XAML预览
Xamarin XAML语言教程Visual Studio中实现XAML预览 每次通过编译运行的方式查看XAML文件效果,需要花费大量的时间.如果开发者使用XAML对UI进行布局和设计,可以通过预览的 ...
- httperf+autobench测试web应用
测试性能相关的概念理解 httperf使用 主页: http://www.hpl.hp.com/research/linux/httperf/ 下载: http://httperf.googleco ...
- 剖析ifstream打开含中文路径名文件失败的原因
http://blog.csdn.net/yukin_xue/article/details/7543423 最近写程序的时候遇到了使用ifstream打开含中文路径文件时失败的问题,在网上翻了一下, ...