Giter Site home page Giter Site logo

zzzprojects / html-agility-pack Goto Github PK

View Code? Open in Web Editor NEW
2.6K 83.0 369.0 1.98 MB

Html Agility Pack (HAP) is a free and open-source HTML parser written in C# to read/write DOM and supports plain XPATH or XSLT. It is a .NET code library that allows you to parse "out of the web" HTML files.

Home Page: https://html-agility-pack.net

License: MIT License

C# 88.82% HTML 11.18%
htmlagilitypack xpath parse hap html-parser

html-agility-pack's Introduction

Library Powered By

This library is powered by Entity Framework Extensions

Entity Framework Extensions

What's Html Agility Pack (HAP)?

It is an agile HTML parser that builds a read/write DOM and supports plain XPATH or XSLT (No need to understand XPATH nor XSLT to use it, don't worry...). It is a .NET code library that allows you to parse "out of the web" HTML files. The parser is very tolerant of "real world" malformed HTML. The object model is very similar to what proposes System.Xml, but for HTML documents (or streams).

NuGet: https://www.nuget.org/packages/HtmlAgilityPack/

Useful links

Contribute

The best way to contribute is by spreading the word about the library:

  • Blog it
  • Comment it
  • Star it
  • Share it

A HUGE THANKS for your help.

More Projects

To view all our free and paid projects, visit our website ZZZ Projects.

html-agility-pack's People

Contributors

3bdnkocy avatar ahitrov avatar arabcewicz avatar ashishsapkale avatar basicn86 avatar bor1ss avatar cilerler avatar damageboy avatar deisterhold avatar dpaquette avatar elgonzo avatar evgeniyz avatar georgdangl avatar jonathanmagnan avatar josteink avatar lempireqc avatar loganhollins avatar lukecolburn avatar n-ski avatar parsalotfy avatar poferro avatar rwecho avatar smishanya avatar stgelaisalex avatar teo-tsirpanis avatar theboxfactory avatar tora-bora avatar waqasm78 avatar yoav-shany avatar zmjack avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

html-agility-pack's Issues

V1.5 breaks webview events

I updated to 1.5 webview.navigationcompleted stopped working, spent half the day thinking it was my code and trying different events. Works in the Windows Phone emulator but not on an actual device.

Licensing query

This fork of the HAP has a license file indicating that it is dual-licensed under the MIT license and a proprietary license.

Previously, the HAP was licensed under the MS-PL. Clause 3D of the MS-PL states that you may only distribute the source code under that same license.

Do you have the permission of all of the previous contributors to re-license their work & submissions? Otherwise this library may be a little dangerous to use, as it could be threatened by copyright takedown notice.

Source: https://htmlagilitypack.codeplex.com/license

HtmlEntity.Entitize("\u009d") threw an exception of type 'System.Collections.Generic.KeyNotFoundException'

HtmlEntity.Entitize just crashed on me unexpectedly when a string I wanted to encode had a \u009d character in it. Put aside reasons why a string would contain characters like that, I'd not expect it to crash... It's supposed to make strings safe for use in HTML, regardless of what characters the string contains.

You can reproduce the issue easily by calling HtmlEntity.Entitize("\u009d") (in 1.4.9.5).

It crashed on this line:

string entity = _entityName[code] as string;

The line is:

string entity = _entityName[code] as string;

If the code is not found inside _entityName, the code will crash. The author of the line probably thought that it will just return null (assuming because next line actually compares entity == null), but unfortunately, that's not how dictionaries work in .NET. Correct me if I'm wrong, but it will also crash when trying to encode any character which doesn't have a defined HTML entity with a name.

The line should instead look something like this:

string entity = _entityName.ContainsKey(code) ? _entityName[code] : null;

Could you fix this soon (i.e. before the 1.5 release), please? It seems like just a minor issue. But knowing this bug, an adversary can make any app that's using HtmlAgilityPack where Entitize is involved crash unexpectedly...

'DocumentNode.InnerHtml' threw an exception of type 'System.NullReferenceException'

Hi, i'm new in html agility pack.

I want to get data from a real estate website, but when i load(url), i have a error:

image

Here is my code:
HtmlWeb web = new HtmlWeb();

HtmlAgilityPack.HtmlDocument documentx = web.Load(url);

Here is url i want to load: "http://batdongsan.com.vn/cho-thue-nha-tro-phong-tro-duong-ba-le-chan-phuong-tan-dinh-2/ngay-gan-tran-quang-khai-quan-1-pr12422590"

Can you help me? Sorry for my bad english. :(

End tag removed when option tag found in html

When I retrieve such a simple html snippet containing option fields from the backend:

<option selected="selected" value="">Select a cell</option>
<option value="a52059e6-f7f0-4444-ab9d-bac7847d85fe">C1</option>
<option value="7befd28a-5653-473e-b925-1ffa1271df22">C2</option>

Then load this content into a html document and get the outer html via htmlDocument.DocumentNode.OuterHtml the html agility pack will remove the option end tag. The output looks like this:

<option selected="selected" value="">Select a cell
<option value="a52059e6-f7f0-4444-ab9d-bac7847d85fe">C1
<option value="7befd28a-5653-473e-b925-1ffa1271df22">C2

End tag was removed.

When I change my backend to return

<option2 selected="selected" value="">Select a cell</option2>
<option2 value="a52059e6-f7f0-4444-ab9d-bac7847d85fe">C1</option2>
<option2 value="7befd28a-5653-473e-b925-1ffa1271df22">C2</option2>

The output is correct of the htmlDocument.DocumentNode.OuterHtml. It looks like this:

<option2 selected="selected">Select a cell</option2>
<option2 value="764ccc86-9d51-4c07-89ad-67b574bde117">C1</option2>
<option2 value="0160ff28-7f92-434c-8d67-eb19ca78ec95">C2</option2>

We using the HtmlAgilityPack nuget package with version 1.5.1

Is this a bug or do I understand here something wrong. Thanks for the help.

</form> is recognized as a Text node

Hello!

When parsing html </form> is recognized as a #text node.

Small repro.

var document = new HtmlDocument();
document.LoadHtml("<div></div>");
var result = document.DocumentNode.Descendants().Select(dn => new { dn.NodeType, dn.Name, dn.OuterHtml }).ToArray();

Result contains:

new [] 
{
    new { NodeType = HtmlNodetype.Element, Name = "div", OuterHtml = "<div></div>" }
}

Seems reasonable, however changing "<div></div>" to "<form></form>" in the repro above yields an unexpected output

new [] 
{
    new { NodeType = HtmlNodeType.Element, Name = "form", OuterHtml = "<form>" },
    new { NodeType = HtmlNodeType.Text, Name = "#text", OuterHtml = "</form>" }
}

Obviously my real scenario has a full HTML document, with html, head, body, etc, but the error stays the same.

When an attribute is immediately preceded by "/", first character is cut off from the attribute's name

So this is one of those things that web browsers decided to let people get away with for unknown reasons:

<img src="x"/onerror="alert('onerror1')">
<img/src="x"/onerror="alert('onerror2')">

This will actually parse in browsers (tested in Chrome and FF), and can be used to inject scripts where they don't belong.

Problem

When an attribute is immediately preceded by "/", the first character is cut off from the attribute's name.

Demonstration

This minimal RoslynPad snippet illustrates the problem:

#r "$NuGet\HtmlAgilityPack\1.5.0-beta6\lib\Net45\HtmlAgilityPack.dll"
using HtmlAgilityPack;

var html = "<img src=\"x\"/onerror=\"alert('onerror1')\"><img/src=\"x\"/onerror=\"alert('onerror2')\">";
var doc = new HtmlDocument();
doc.LoadHtml(html);

doc.DocumentNode.Descendants().SelectMany(x => x.Attributes).Select(x => x.Name).Dump();

Expected: src, onerror, src, onerror - Got: src, nerror, rc, nerror

Affected versions

  • 1.5.0-beta6
  • 1.4.9.5

Condition for HtmlParseErrorCode.CharsetMismatch

There is a special error HtmlParseErrorCode.CharsetMismatch during parsing of document. Now its condition is:

if (_declaredencoding.WindowsCodePage != _streamencoding.WindowsCodePage).

Some encoding like Latin1 and ASCII have the same 1252 windows code page. But their are different and produce different results when parsing document. Propose to use CodePage property of encoding instead of WindowsCodePage.

.net45 uri colon issue

Is there any chance to bypass of unwanted decoding of colon character (:) by uri class used in your library ("feature" in uri added in .net45) ?. One of servers auto redirecting to %3a and i am unable to use your library to load it.
I already tried to add configuration options of uri class in my project but it doesnt work. Maybe is there chance to use uri.OriginalString method as url ? I didnt found any public class with string dont parsed later by uri.

Cannot add package to visual studio for Mac

Tried to add the package to a C# project with visual studio for Mac and I got the following error message:
"Could not install package 'HtmlAgilityPack.Net45 2.0.20'. You are trying to install this package into a project that targets 'Xamarin.Mac,Version=v2.0', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author."
Is there any solution to overcome this issue?

HtmlWeb Load() method returns empty HtmlDocument when using cache

Hi,

I'm using HtmlAgilityPack 1.5.0-beta6 in .NETCoreAPP 1.1 console application.
Following code outputs empty string. Once I set UsingCache = false it will output page content, as expected.

var web = new HtmlAgilityPack.HtmlWeb()
{
	CachePath = @"C:\Users\Anton\Documents\Cache",
	UsingCache = true
};

var url = "https://github.com/zzzprojects/html-agility-pack";
var doc = web.Load(url);
Console.WriteLine(doc.DocumentNode.InnerText);

Struggling to get started, reading an html file vis SSIS C#

Good day, I urgently need help on HAP

I have html files and via ssis using c# i would like to write the values to a database.
i installed the:

  1. nutmeg
  2. Install-Package HtmlAgilityPack -Version 1.4.9.5
  3. in c# script i added reference to the "\packages\HtmlAgilityPack.1.4.9.5\lib\Net40\HtmlAgilityPack.dll"
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
using System.Windows;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net;       // HttpWebRequest
using System.IO;        // Stream
using HtmlAgilityPack;  // Html parse
using System.Text;      // Encoding
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;
namespace ST_43f237fb54624596ad8d1aacf94e650c
{ Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
	{
             var doc = new HtmlAgilityPack.HtmlDocument();
        }
}

It keeps on failing on the first and only line, no errors in the script as it allows me to select the htmldocument etc but in ssis i cant see the error.

Anybody please help, any ideas as i have been struggling for days to get past this 1 line and im running out of time.

Thank You

Make library CLS-compliant

Currently, this library is not marked as CLS-compliant which makes it a pain to include in projects striving to be CLS-compliant.

Please consider making this library CLS-compliant.

HAP does not fix nested anchors

I've run into an issue where HAP isn't fixing nested tags in html.

https://stackoverflow.com/questions/45362431/closing-anchor-tags-with-htmlagilitypack

I see that OptionFixNestedTags is advertised as only applying to table/list elements, but I have some changes on my machine that seem to let it work properly for all non-self-nestable tags. I'm probably missing a pitfall somewhere, but would you like me to push a branch with those changes and we can take a look at it?

calling RemoveAt on an instance of HtmlNodeCollection throwing exception

I've a valid instance of HtmlNodeCollection having 78 member (retrieved using .Count) as below:

var regionRows = ...

I need to remove very first element from the regionRows.

I tried calling regionRows.RemoveAt(0), but it is throwing an exception System.NullReferenceException: Object reference not set to an instance of an object.

System.NullReferenceException: Object reference not set to an instance of an object.
   at HtmlAgilityPack.HtmlNodeCollection.RemoveAt(Int32 index) in ..... 250

Any suggestion? I want to do it without LINQ.

Extra .NETStandard1.3 entry in nuspec file

The .nuspec file for 1.5.0-beta9 has an extra .NETStandard1.3 group entry without any of the necessary dependencies. Nuget chose this entry instead of the one below it, so it didn't install the dependencies HAP needs.

image

Self closing tags modified

I've noticed that several different aspects of self closing tags are not respected. Some examples:

< /br> becomes <br>
<img src="..." /> becomes <img src="..." >

Thanks,
Chris

HtmlNode.CreateNode add closing tag to video source item

Hi,
if I try to create a node from this html string:

<video width="1280" height="720" poster="poster.jpg">
   <source type="video/mp4" src="video.mp4">
</video>

the result outer html is like this:

<video width="1280" height="720" poster="poster.jpg">
   <source type="video/mp4" src="video.mp4"></source>
</video>

that's not valid.

Thanks
Marco

HtmlAttribute.Value should use HtmlEntity.DeEntitize when setting _value

The Value of attribute data-foo="&quot;Hello&quot;" should be "Hello", not &quot;Hello&quot;
I think the fix is:

        {
            get
            {
                if (_value == null)
                {
                    _value = HtmlEntity.DeEntitize(ownerdocument.Text.Substring(_valuestartindex, _valuelength));
                }
                return _value;
            }
            set
            {
                _value = HtmlEntity.DeEntitize(value);
                if (_ownernode != null)
                {
                    _ownernode._innerchanged = true;
                    _ownernode._outerchanged = true;
                }
            }
        }

Closing Paragraph tag removed when no content provided

Related to issue #1

Encountered in v1.5.1 - When parsing a P block with no content, HAP will remove the closing P. For example:
Starting HTML: <p style="font-size:1px;"></p><p>test</p>
HTML after HAP: <p style="font-size:1px;"><p>test</p>

Using HtmlAgilityPack.HtmlDocument.DisableBehavaiorTagP = true; seem to resolve this issue. Should we expect to continue to use that option in future releases?

Cannot easily add or remove class

The library does not allow to add or remove a class to a tag in an easy and straightforward way. Methods like Node.AddClass() or .RemoveClass() would greatly simplify the operation, instead of fumbling around with the Node.Attributes["class"] HtmlAttribute. Classes should be treated as first class citizens IMHO. Please add these in the API.

Parsing finds only first "select" in a div

I'm attempting to parse a web page that has three selects embedded in a single div. There is one select in a separate div just above this div. My attempts to parse this return only the first select in each div.

My most recent attempt is:
var htmlNodes = document.DocumentNode.SelectNodes("//select");
This returns two HtmlNodes, one for the Id edit-species-type and the other for the Id edit-tid. Nothing for Id edit-tid-select-1 or edit-tid-select-2.

I am including a screen shot of the div in question.
image

Any suggestions as to how to get the these?

Thanks,
Dave

NuGet package install error on VS2012

hi,
i m not an expert !
two year ago i have used this package successfully.
now, on my vs2012, when try to install the package result on this error "HtmlAgilityPack' already has a dependency defined for 'System.Net.Http'."

thanks for any support
regards

Ignoring some errors while parsing wrong html

Hi
In my MVC - C# application I have something like this:

var doc = new HtmlDocument();
var htmlString = "<span ?= >text</span>";
doc.LoadHtml(htmlString);
var e = doc.ParseErrors;

This is not giving any error, but <span ?= > should be wrong

Thank you for your help

Vittorio

DocumentNode.SelectNodes returns null

DocumentNode.SelectNodes returns null instead of empty collection when it doesn't find any nodes.

What is the current state on this issue? Did it end up as "won't fix"?

Currently the best workaround is this extension method but it's easy to forget to put it everywhere

public static IEnumerable<T> NullGuard<T>(this IEnumerable<T> collection)
{
	return collection ?? new T[0];
}

original discussion

<a> tag's href value gets html encoded.

In version 1.5.0, I could do
var url = node.SelectSingleNode(".//h3[@Class='xxx-item-title']/a").Attributes["href"].Value;
new HtmlWeb().Load(url);

In version 1.5.1 this doesn't work because the ampersands (&) in the url gets decode into &amp;

Possibly allow LoadFromWebAsync to accept Cancellation Tokens

Hi,
What are you guys' thoughts on adding a cancellation token source to the LoadFromWebAsync method? I've ran across an issue where some urls take upwards to 90 secs to load in decent networking conditions and would like a way to cancel the task when that occurs. Thanks.

Here's an exampl url:

https://www.ticketmaster.com/member/order_history?v=txfm3sEQvwZh-8lyZHhAvoql_VMuiIgw1Cyd5NCj08c3FOvi9DAlASaHBwB3SkT0bBYrrrj5JtdQboum7IxjHFs4rmB2j3E8gvnO7JwqyUb0NfFbGO65a2DOoXk8QSKUlbVSNVAJgg&queue_token=pdf8721fb380190f20b705d7a4c4e7bcfff0c0af528

attributes containing HTML entities are resolved into the literal characters

There is a subtle change in HTML Agility Pack 1.5 that turned out to be a breaking change for us - I'll leave it up to you to figure out if it is an error.
The scenario is this:
We have some XML files which also happens to be almost valid HTML we run through HTML Agility Pack with the OptionWriteEmptyNodes set to true.
This takes care of some subtle fixes, e.g. a closed span tag: <span /> - which is valid in XML, but not in HTML - is rewritten as <span></span> which is valid XML and also valid HTML. And this is what we want.
However, when upgrading from version 1.4.9 to version 1.5 a change was introduced.
This:

<a data-href="http://example.com/path?productId=9788762505032&amp;title=something">...</a>

is changed into this:

<a data-href="http://example.com/path?productId=9788762505032&title=something">...</a>

Notice that the ampersand entity in the attribute value has been resolved into a literal ampersand. This makes the output non-valid XML and breaks our process. I suspect that the same would happen for other html entities. This is almost certainly related to issue #19.

I am not sure if you guarantee that the output of HTML which happens to be valid XML run through the agility pack will produce still valid XML; but until version 1.4.9 it did - and it still does for the vast majority of cases. So it would be great if you could consider to still support this. And I also suspect there might be some cases where this would be an error even for consumers that do not care about XML.

an unclosed tags HAP not fixed

in this page baidu, have an unclosed TR tags. but HAP
canot fix it.

the html code like

<tr>
<td class="i">
<span title="doc" class="ic ic-doc"></span>
</td>
<td>
<a href="/view/c437372deffdc8d376eeaeaad1f34693daef107b.html" target="_blank" title="命运的悲苦和解脱">命运的悲苦和解脱</a>
<span class="history-page">3页</span><span class="download2mobile list-download2mobile" data-docid="c437372deffdc8d376eeaeaad1f34693daef107b">
<a href="javascript:void(0);" style="display:none;">免费下载到手机</a>
</span>
</td>
<td class="un">
<div>
<a href="/u/龙源期刊网2013?from=wenku" data-logsend="{'send':['view','user',{'l':''}]}" class="Author logSend" target="_blank">龙源期刊网2013</a>
</div>
</td>
<td><span>0次</span></td>
<td><span>40分钟前</span></td>
<tr class="hasb">
<td class="i">
<span title="doc" class="ic ic-doc"></span>

Closing tags in a table are not inserted appropriately

I'm trying to scrape a website with HtmlAgilityPack 1.5.2-beta2.

Raw curl of the page returns a tacky table (simplified):

<table>
    <thead>
        <tr><th>A<th>B<th>C
    </thead>
    <tbody>
        <tr><td>x<td>y<td>z
        <tr><td>i<td>j<td>k
    </tbody>
</table>

Chrome can deal with this by inserting the closing tags appropriately:

<table>
    <thead>
        <tr><th>A</th><th>B</th><th>C</th></tr>
    </thead>
    <tbody>
        <tr><td>x</td><td>y</td><td>z</td></tr>
        <tr><td>i</td><td>j</td><td>k</td></tr>
    </tbody>
</table>

However, HtmlAgilityPack deals with it differently and that prevents me from easily parsing the document. HtmlDocument.LoadHtml(string) and then HtmlDocument.DocumentNode.InnerHtml:

<table>
    <thead>
        <tr><th>A<th>B<th>C
        </th></th></th></tr>
    </thead>
    <tbody>
        <tr><td>x<td>y<td>z
        <tr><td>i<td>j<td>k
        </td></td></td></tr>
        </td></td></td></tr>
    </tbody>
</table>

I can of course solve this with a recursive approach and many conditions. I'd just like to point this out, since HAP is meant specifically for HTML parsing. It should be able to deal with specific situations like this one.

After OuterHtml has been called followed by HtmlNode.Remove(), subsequent calls to OuterHtml still return the removed content

There doesn't seem to be a call to SetChanged() in HtmlNode.Remove() so OuterHtml does not get updated after HtmlNode.Remove() is called. Here is a failing test case:

        [Test]
        public void OuterHtmlHasBeenCalled_RemoveCalled_SubsequentOuterHtmlCallsAreBroken()
        {
            var doc = new HtmlDocument();
            doc.LoadHtml("<html><head></head><body><div>SOme text here</div><div>some bolded<b>text</b></div></body></html>");
            var resultList = doc.DocumentNode.SelectNodes("//div");
            Assert.AreEqual(2, resultList.Count);
            resultList.First().Remove();
            Assert.AreEqual("<html><head></head><body><div>some bolded<b>text</b></div></body></html>", doc.DocumentNode.OuterHtml);
            var resultList2 = doc.DocumentNode.SelectNodes("//div");
            Assert.AreEqual(1, resultList2.Count);
            resultList2.First().Remove();
            // <div>some bolded<b>text</b></div> should have been removed
            Assert.AreEqual("<html><head></head><body></body></html>", doc.DocumentNode.OuterHtml);
        }

Homepage example code uses variable name as string literal

The first example on http://html-agility-pack.net/ has an error on the last line:

// From File
var htmlDoc = new HtmlDocument();
html.Load(filePath);

// From String
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);

// From Web
string url = "http://html-agility-pack.net/";
HtmlWeb web = new HtmlWeb();
HtmlDocument document = web.Load("url");  // <-- Should be web.Load(url);

The web.Load method should take the value of url not the string-literal "url"

Content not properly loaded while using Htmldocument.Load() method

I am using the HtmlAgilityPack to do some changes in the existing html file. So, I have used the below code to load the html content.

string html = "Sample.cshtml";
HtmlDocument htmlContent = new HtmlDocument();
htmlContent.Load(html);

After load the html file some content has been changed which is differ from the original content. Please refer the below screenshot.

Before Load HTML file:

image

After Load HTML file:

image

Please suggest the solution to resolve this issue.

Thanks,
Ganesan R.

DeEntitize fails with KeyNotFoundException

Hi!
we have some cases when during DeEntitize KeyNotFoundException occurs.

at HtmlEntity.DeEntitize line 646:
object o = _entityValue[entity.ToString()];
fails if value is not presented in Dictionary

I think the fix is to use TryGetValue

if (!_entityValue.TryGetValue(entity.ToString(), out code))
{
    // nope
    sb.Append("&" + entity + ";");
}

Slow load the first call Load(URL)

Hi,
the first call to HtmlWeb().Load(URL) it works very slow but after it run ok!

i want to know if it's parts of library or is a bug. In the meantime, i'm uploading to basic url (basic html response - www.google.com), it only takes 10-15s.

i hope to have your support.

Regards

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.