HtmlAgilityPack 抓取页面的乱码处理
HtmlAgilityPack 抓取页面的乱码处理
用来解析 HTML 确实方便。不过直接读取网页时会出现乱码。
实际上,它是能正确读到有关字符集的信息,怎么会在输出时,没有取到正确内容。
因此,读两次就可以了。
#if interactive
#r @"E:\htmlagilitypack-99964\Trunk\HtmlAgilityPack\bin\fx.4.0\Debug\HtmlAgilityPack.dll"
#endif
//open System
//open System.Xml
// hexun -- GB2312
// tianya -- UTF-8
//let url = @"http://hadstj.blog.hexun.com/88419406_d.html"
let url = @"http://bbs.tianya.cn/post-worldlook-873912-1.shtml"
let html = new HtmlAgilityPack.HtmlWeb()
let doc0 = html.Load ( url )
html.OverrideEncoding <- doc0.Encoding
let doc = html.Load ( url )
let title = doc.DocumentNode.SelectSingleNode("//title").InnerText
printfn "%s" title
doc.DocumentNode.SelectNodes("//div")
|> Seq.map ( fun i -> i.InnerText )
|> Seq.iter ( printfn "%s" )
HtmlAgilityPack 抓取页面的乱码处理的更多相关文章
- shell用curl抓取页面乱码,参考一下2方面(转)
1.是用curl抓取的数据是用类似gzip压缩后的数据导致的乱码.乱码:curl www.1ting.com |more乱码:curl -H "Accept-Encoding: gzip&q ...
- 【java】抓取页面内容,提取链接(此方法可以http get无需账号密码的请求)
package 网络编程; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileOutpu ...
- 用PHP抓取页面并分析
在做抓取前,记得把php.ini中的max_execution_time设置的大点,不然会报错的.
- 使用PHP的正则抓取页面中的网址
最近有一个任务,从页面中抓取页面中所有的链接,当然使用PHP正则表达式是最方便的办法.要写出正则表达式,就要先总结出模式,那么页面中的链接会有几种形式呢? 链接也就是超级链接,是从一个元素(文字. ...
- php抓取页面的几种方式
在做一些天气预报或者RSS订阅的程序时,往往 需要抓取非本地文件,一般情况下都是利用php模拟浏览器的访问,通过http请求访问url地址, 然后得到html源代码或者xml数据,得到数据我们不能直接 ...
- CasperJS基于PhantomJS抓取页面
CasperJS基于PhantomJS抓取页面 Casperjs是基于Phantomjs的,而Phantom JS是一个服务器端的 JavaScript API 的 WebKit. CasperJS是 ...
- Python抓取页面中超链接(URL)的三中方法比较(HTMLParser、pyquery、正则表达式) <转>
Python抓取页面中超链接(URL)的3中方法比较(HTMLParser.pyquery.正则表达式) HTMLParser版: #!/usr/bin/python # -*- coding: UT ...
- php抓取页面的几种方法详解
本篇文章是对php抓取页面的几种方法进行了详细的分析介绍,需要的朋友参考下 在 做一些天气预报或者RSS订阅的程序时,往往需要抓取非本地文件,一般情况下都是利用php模拟浏览器的访问,通过http请求 ...
- HttpWebRequest 抓取页面异常处理办法
抓取页面异常处理办法 public static string GetHtmlTest(string URI) { string fullhtml = null; while (true) { try ...
随机推荐
- iOS面试题01-多线程网络
1.面试题方向: 1>.多线程+网络 2>.项目(简历上的项目,每一个细节:技术实现细节.业务.项目周期.人数) 3>.性能优化:图片优化.内存优化(tableView的循环利用) ...
- 注册表:无法打开 XXX 由于某个错误无法打开该密钥。详细信息:拒绝访问
错误原因:没有注册表用户权限. 正确添加用户权限的步骤如下:(跟着图片步骤) 右击该项,权限: 选中想要添加为当前所有者的用户后,点击应用.如果没用户显示,可以从“其他用户或组”中添加进来. 权限添加 ...
- iOS中UIWebView使用JS交互 - 机智的新手
iOS中偶尔也会用到webview来显示一些内容,比如新闻,或者一段介绍.但是用的不多,现在来教大家怎么使用js跟webview进行交互. 这里就拿点击图片获取图片路径为例: 1.测试页面html & ...
- button 变成圆
btn.layer.cornerRdius = width/2.0;btn.layer.maskToBounds = width/2.0:
- :before和:after的内幕以及伪类
pseudo-classes vs pseudo-elements http://m.blog.csdn.net/blog/zhuizhuziwo/7897837
- PHP mysqli类
<?php header("content-type:text/html;charset=utf-8"); $conn = new mysqli("localhos ...
- django 实现指定文件合并成压缩文件下载
需求是在一列学生列表中选择指定的学生,然后下载他们上传的报告文档.
- System.Reflection.Emit学习
C#反射发出System.Reflection.Emit学习 分享: 1 一.System.Reflection.Emit概述 Emit,可以称为发出或者产生.与Emit相关的类基本都存在于Syste ...
- 使用回调接口实现ActiveX控件和它的容器程序的通讯
本文阅读基础:有一定的C++基础知识(了解继承.回调函数),对MFC的消息机制有一定了解,对COM的基础知识有一定了解,对ActiveX控件有一定了解. 一. 前言 ActiveX控件和它的容器程序如 ...
- GTW likes math(简单数学)
GTW likes math Accepts: 472 Submissions: 2140 Time Limit: 2000/1000 MS (Java/Others) Memory Limi ...