4 Réponses :
Vous pouvez utiliser des expressions régulières à la recherche de l'étendue où se trouvent les abonnés.
/<a class="-nal3 " href="\/[a-zA-Z0-9]+\/followers\/"><span class="g47SY " title="([0-9.]+)">6,3mm<\/span>/m
J'ai utilisé Selenium pour encombrer un site et extraire des images comme ci-dessous, cela peut être utile pour vous:
IWebDriver _webDriver = null;
var firefoxOptions = new FirefoxOptions
{
LogLevel = FirefoxDriverLogLevel.Debug,
BrowserExecutableLocation = Configuration.Developer.SeleniumBrowserExecutableLocation
};
firefoxOptions.AddArguments("no-sandbox");
firefoxOptions.AddArguments("-headless");
_webDriver = new RemoteWebDriver(new Uri($"{Configuration.Developer.SeleniumRemoteUrl}"), firefoxOptions);
_webDriver.Manage().Window.Maximize();
_webDriver.Manage().Cookies.DeleteAllCookies();
_webDriver.Url = $"https://www.YourSite.com/";
_webDriver.Navigate();
var wait = new WebDriverWait(_webDriver, new TimeSpan(0, 0, 30));
var element = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.ClassName("jumbo-hero")));
var imageContent = element.GetAttribute("innerHTML");
_webDriver.Quit();
var fromSrc = doc.DocumentNode.Descendants("img").Where(e => e.Attributes.Contains("src") && string.IsNullOrWhiteSpace(e.Attributes["src"].Value) == false).Select(e => e.Attributes["src"].Value).ToList();
var fromDataSrc = doc.DocumentNode.Descendants("img").Where(e => e.Attributes.Contains("data-src") && string.IsNullOrWhiteSpace(e.Attributes["data-src"].Value) == false).Select(e => e.Attributes["data-src"].Value).ToList();
Avez-vous vérifié la structure HTML dans voir la source ?
votre HTML actuel dans le fichier / html / body / div 1 a> est comme ci-dessous. Le contenu que vous voyez dans la page est chargé dynamiquement. Par conséquent, ces structures ne sont pas disponibles dans le document html que vous créez. Vous devez envisager une autre option pour ce faire.
<div id="react-root">
<span><svg width="50" height="50" viewBox="0 0 50 50" style="position:absolute;top:50%;left:50%;margin:-25px 0 0 -25px;fill:#c7c7c7"><path d="M25 1c-6.52 0-7.34.03-9.9.14-2.55.12-4.3.53-5.82 1.12a11.76 11.76 0 0 0-4.25 2.77 11.76 11.76 0 0 0-2.77 4.25c-.6 1.52-1 3.27-1.12 5.82C1.03 17.66 1 18.48 1 25c0 6.5.03 7.33.14 9.88.12 2.56.53 4.3 1.12 5.83a11.76 11.76 0 0 0 2.77 4.25 11.76 11.76 0 0 0 4.25 2.77c1.52.59 3.27 1 5.82 1.11 2.56.12 3.38.14 9.9.14 6.5 0 7.33-.02 9.88-.14 2.56-.12 4.3-.52 5.83-1.11a11.76 11.76 0 0 0 4.25-2.77 11.76 11.76 0 0 0 2.77-4.25c.59-1.53 1-3.27 1.11-5.83.12-2.55.14-3.37.14-9.89 0-6.51-.02-7.33-.14-9.89-.12-2.55-.52-4.3-1.11-5.82a11.76 11.76 0 0 0-2.77-4.25 11.76 11.76 0 0 0-4.25-2.77c-1.53-.6-3.27-1-5.83-1.12A170.2 170.2 0 0 0 25 1zm0 4.32c6.4 0 7.16.03 9.69.14 2.34.11 3.6.5 4.45.83 1.12.43 1.92.95 2.76 1.8a7.43 7.43 0 0 1 1.8 2.75c.32.85.72 2.12.82 4.46.12 2.53.14 3.29.14 9.7 0 6.4-.02 7.16-.14 9.69-.1 2.34-.5 3.6-.82 4.45a7.43 7.43 0 0 1-1.8 2.76 7.43 7.43 0 0 1-2.76 1.8c-.84.32-2.11.72-4.45.82-2.53.12-3.3.14-9.7.14-6.4 0-7.16-.02-9.7-.14-2.33-.1-3.6-.5-4.45-.82a7.43 7.43 0 0 1-2.76-1.8 7.43 7.43 0 0 1-1.8-2.76c-.32-.84-.71-2.11-.82-4.45a166.5 166.5 0 0 1-.14-9.7c0-6.4.03-7.16.14-9.7.11-2.33.5-3.6.83-4.45a7.43 7.43 0 0 1 1.8-2.76 7.43 7.43 0 0 1 2.75-1.8c.85-.32 2.12-.71 4.46-.82 2.53-.11 3.29-.14 9.7-.14zm0 7.35a12.32 12.32 0 1 0 0 24.64 12.32 12.32 0 0 0 0-24.64zM25 33a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm15.68-20.8a2.88 2.88 0 1 0-5.76 0 2.88 2.88 0 0 0 5.76 0z"/></svg></span>
</div>
Les pages Instagram sont compliquées. Votre xpath "/ html / body / div [1] / section / main / div / header / section / ul / li [2] / a / span" ne fonctionne pas car cette partie du DOM n'existe pas encore; dans un navigateur Web, la plupart du DOM d'une page Instagram est constitué d'une tonne de JavaScript.
Notez cependant que vous l'avez dans la page Web téléchargée:
var url = "https://www.instagram.com/bbcpersian/"; var web = new HtmlWeb(); var htmlDoc = web.Load(url); string rawHTML = htmlDoc.Text; Match m = Regex.Match(rawHTML, "\"(?<followers>.+?) Followers, (?<following>.+?) Following, (?<posts>.+?) Posts"); string result = m.Groups["followers"].Value;
Qu'est-ce que rawHTML?
Le HTML brut de la page Instagram.
Comment y accéder ou comment le créer?
Que faire si nous voulons suivre la page?
Que signifie «ne fonctionne pas correctement»?
"ne fonctionne pas correctement" = Erreur !!!
... et quelle erreur cela pourrait-il être alors? Veuillez réaliser que nous ne pouvons pas simplement deviner. Vous savez donc s'il vous plaît dites-nous.
pouvez-vous essayer li [1] comme ci-dessous / html / body / div [1] / section / main / div / header / section / ul / li [1] / a / span