相关疑难解决方法(0)

WebBrowser控件在一个新线程中

我有一个列表Uri,我想要"点击"为了达到这个目的,我试图为每个Uri创建一个新的Web浏览器控件.我为每个Uri创建一个新线程.我遇到的问题是文档在文档之前结束是完全加载的,所以我永远不会使用DocumentComplete事件.我怎么能克服这个?

var item = new ParameterizedThreadStart(ClicIt.Click); 
var thread = new Thread(item) {Name = "ClickThread"}; 
thread.Start(uriItem);

public static void Click(object o)
{
    var url = ((UriItem)o);
    Console.WriteLine(@"Clicking: " + url.Link);
    var clicker = new WebBrowser { ScriptErrorsSuppressed = true };
    clicker.DocumentCompleted += BrowseComplete;
    if (String.IsNullOrEmpty(url.Link)) return;
    if (url.Link.Equals("about:blank")) return;
    if (!url.Link.StartsWith("http://") && !url.Link.StartsWith("https://"))
        url.Link = "http://" + url.Link;
    clicker.Navigate(url.Link);
}
Run Code Online (Sandbox Code Playgroud)

c# browser multithreading

83
推荐指数
2
解决办法
8万
查看次数

使用C#抓取javascript生成的网页

我有一个webBrowser,以及Visual Studio中的标签,基本上我要做的是从另一个网页抓取一个部分.

我尝试使用WebClient.DownloadString和WebClient.DownloadFile,在javascript加载内容之前,他们都给了我网页的源代码.我的下一个想法是使用WebBrowser工具,只是在页面加载后调用webBrowser.DocumentText并且不起作用,它仍然提供了页面的原始来源.

有没有办法可以抓住javascriptload后的页面?

这是我试图抓的页面.

http://www.regulations.gov/#!documentDetail;D=APHIS-2013-0013-0083

我需要从该页面获取评论,该页面是生成的.

html javascript c# visual-studio web-scraping

16
推荐指数
2
解决办法
2万
查看次数

PhantomJS-默认情况下打开LocalStorage页面

我正在使用PhantomJS在JavaScript DOM操作发生后获取生成的网页源.这个网页只有一个<body>,没有别的.

重要提示:此网页使用浏览器localStorage生成页面.

我想在打开页面之前更改PhantomJS中的LocalStorage.

App.js:

var page = require('webpage').create();

page.open("https://sample.com")
setTimeout(function(){
    // Where you want to save it    
    page.render("screenshoot.png")  
    // You can access its content using jQuery
    var fbcomments = page.evaluate(function(){
        return $("body").contents().find(".content") 
    }) 
    phantom.exit();
}, 1000)
Run Code Online (Sandbox Code Playgroud)

javascript local-storage phantomjs

6
推荐指数
1
解决办法
6141
查看次数