првиет всем!
есть такой порнокейс:
имеется DOM в виде string. как можно испольтзовать такую стрингу, чтобы искать в ней с помощью всех встреонных методов FindElement и тд?
првиет всем!
есть такой порнокейс:
имеется DOM в виде string. как можно испольтзовать такую стрингу, чтобы искать в ней с помощью всех встреонных методов FindElement и тд?
А что потом планируется делать с найденными элементами?
Если цель искать элементы и не обязательно средствами WD. То попробуйте библиотеку https://jsoup.org/
планируется доставать только текст
Тогда jsoup в помощь. Селекторы очень схожы с xpath + есть свои псевдо селекторы. Мне эта библиотечка зашла. Пользуюсь до сих пор.
я на си шарпе(
о , круто, спс попробую но уже в след году:) а как либа относится к знакам разметки? /r/n
Это внутри полученного текста? Вроде нормально. Ничего не съедает и не прячет самостоятельно
Когда работал на с# проекте мы использовали html-agility-pack
Вдогону, кому надо работать в JS:
GitHub - cheeriojs/cheerio: The fast, flexible, and elegant library for parsing and manipulating HTML and XML. - отличная либа.
а кто нибудь пользовался GitHub - jamietre/CsQuery: CsQuery is a complete CSS selector engine, HTML parser, and jQuery port for C# and .NET 4. ?
Я бы попытался спарсить в XML, а потом уже намного удобней работать.
не получится ибо страница содержит скрипты со спецсимволами которые содержатся в скриптах
Можно пример такой ноды с спецсимволами в HTML?
сейчас не могу . список запрещенных символов в хмл можете найти в гугле
Спасибо за предложение погуглить, но по моему это вы просили помощь как вам работать с дом деревом а не я )
Современные парсеры номрально все это преобразовывают, да и скрипты по сути не нужны - если уж на то пошло их можно просто вырезать перед парсингом.
Вот допустим - GitHub - fb55/htmlparser2: The fast & forgiving HTML and XML parser тут даже встроенный DomUtils есть.
речь шла конкретно про преобразование в хмл, которое вы предложили. я ответил почему это невозможно. скрипты будут полюбому, и вырезать их перед обработкой выглядит костыльно.
хотелось бы работать с ДОМом через селекторы
Ну ок
да, могу объяснть почему DOM в виде стринги:
мне нужно вытягивать информацию с одного ресурса у которого нет апи, а на запросы приходит html страница. запросы я научился делать, а вот как лучше спарсить такую страницу я еще думаю. в идеале было бы сделать так чтобы запихнуть в вебдрайвер такую структуру и работать с ним как обычно
Мне кажется что это код делает то что вам нужно:
import requests
import lxml.html as parser
def main():
url = 'url'
response = requests.get(url)
html = response.text
root = parser.fromstring(html)
items = root.cssselect('collection_selector')
for i in items:
print i.cssselect("item_selector").text