Я нахожусь в процессе разработки движка сканирования. Моя программа сканирует веб-сайты через Xpath с помощью HtmlAgilityPack. Мне нужно получить тег src изображения напрямую. Вы можете увидеть мой простой код, ниже которого работает неправильно, спасибо за консультацию!
PS: Пожалуйста, игнорируйте «проблему с символом», шаблоны XPath предоставляются базой данных.
Agility.DocumentNode.SelectSingleNode("//img[@id="product_photo"]/@src");
И это строка, которую мне нужно просканировать (часть *...*
показывает блок для извлечения
<img id="product_photo" src="*/images/thumb/4400/10280/st.jpg*">
Некоторые страницы предоставляют изображение в метатегах, поэтому .Attributes["src"]
работает.
UPDATE: вы можете увидеть мой запрос и результат здесь.
Вы не можете получить значение «src» или любых других атрибутов при использовании:
Agility.DocumentNode.SelectSingleNode(yourXpath);
Просто используя:
string s=Agility.DocumentNode.SelectSingleNode(yourXpath).value;
Это потому, что XPath не может вернуть значение атрибута функцией SelectSingleNode () в классе HtmlAgilityPack. Таким образом, вы должны использовать SelectSingleNode(yourXpath).value
или использовать Regex после фишинга, чтобы получить только «src» без внешнего текста.