从ASP.NET中的页面获取呈现的HTML
本文关键字:获取 HTML ASP NET | 更新日期: 2023-09-27 18:00:08
你好,我有一个html页面(twitter.html),包含以下脚本
<script type="text/javascript" charset="utf-8" src="http://widgets.twimg.com/j/2/widget.js"></script>
<script type="text/javascript">
function getParameterByName(name)
{
name = name.replace(/['[]/, "'''[").replace(/[']]/, "''']");
var regexS = "[''?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(window.location.search);
if(results == null)
return "";
else
return decodeURIComponent(results[1].replace(/'+/g, " "));
}
var TwitterCount = getParameterByName('TwitterCount');
var TwitterHandleName = getParameterByName('TwitterHandleName');
new TWTR.Widget({
version: 2,
type: 'profile',
rpp: TwitterCount,
interval: 30000,
width: 272,
height: 'auto',
theme: {
shell: {
background: '#ffffff',
color: '#000000'
},
tweets: {
background: '#ffffff',
color: '#005A8C',
links: '#000000'
}
},
features: {
scrollbar: false,
loop: false,
live: false,
behavior: 'all'
}
}).render().setUser(TwitterHandleName).start();
</script>
如果我访问页面
http://localhost/twitter.html?TwitterHandleName=billgates&TwitterCount=3
我可以看到最后3条推文。
我想要的是从我的aspx页面在这个页面上做一个http发布。下面的代码只返回脚本标记etc,而不是呈现的html。我的问题是如何获得页面的渲染html?
HttpWebRequest loHttp = (HttpWebRequest)WebRequest.Create("http://localhost/twitter.html?TwitterHandleName=billgates&TwitterCount=3);
loHttp.Timeout = 30000;
loHttp.UserAgent = "Twitter";
HttpWebResponse loWebResponse = (HttpWebResponse)loHttp.GetResponse();
//Encoding enc = Encoding.GetEncoding(1252); // Windows default Code Page
StreamReader loResponseStream = new StreamReader(loWebResponse.GetResponseStream());
string htmlCode = loResponseStream.ReadToEnd();
loWebResponse.Close();
loResponseStream.Close();
我知道它使用了一个预构建的javascript小部件,但你能使用类似的twitter包装器将其移动到服务器端吗https://github.com/danielcrenna/tweetsharp(可从NuGet获得)或http://linqtotwitter.codeplex.com/?
您可以尝试将该url打开到网页的框架中,并使用javascript从中获取html。