开发者

Getting html source from url, css inline problem!

I have a strange problem:

I am getting the html source from url using this:

string html;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(Url);
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
   using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
   {
      html = reader.ReadToEnd();
      reader.Close();
   }
   response.Close();
}  

The page that I am requesting has css inline like this:

开发者_JAVA百科
<span class="VL" style="display:inline-block;height:20px;width:0px;"></span>

But the html var value has only:

<span class="VL" style="display:inline-block;"></span>

Anyone knows why? I have tested with many enconders and using WebRequest and WebClient too, but doesn't work too.


You might need to send a User Agent so that the site doesn't think that you are a bot. Some sites don't bother with CSS when requested from bots. Also the reading of the remote HTML could be simplified using a WebClient:

using (var client = new WebClient())
{
    client.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4";
    string html = client.DownloadString(url);
}


Are you viewing the source through a browser development tool, by clicking inspect element? Is it possible you are viewing the source from a browser which is adding the height and width attributes on the client side through JavaScript and showing you the modified style.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜