Это HTML-структура:
Element link = doc.select("div.subtabs p").first();
Это не работает. Как выбрать p
?
Это HTML-структура:
Element link = doc.select("div.subtabs p").first();
Это не работает. Как выбрать p
?
DIV с вкладками class= "на самом деле не является родителем элемента p
, а вместо этого является братом p
. Чтобы получить p
, вам нужно сначала получить ссылку на родительский DIV, у которого есть id =" content":
Element link = doc.select("div#content > p").first();
Кроме того, вам понадобится символ >
, чтобы указать, что вы выбираете дочерний элемент содержимого div #.
parent > child: дочерние элементы, которые спускаются непосредственно от родителя, например. div.content > p находит p элементов; и тело > * находит прямых детей тега тела
Если вы застряли в селекторе JSOUP CSS в будущем, посмотрите кулинарную книгу синтаксиса селектора JSOUP, в которой есть несколько приятных примеров и объяснений.
div#content p
. Это не ребенок .subtabs
.
Тег p, который вы пытаетесь извлечь, не является дочерним элементом div. Это брат. Идентификатор родительского div - это контент, а тег p, который вы хотите, - это первый тег p внутри его родителя. Поэтому используйте doc.select("div#content > p").first();
# означает id и означает, что RHS является дочерним элементом LHS. Таким образом, утверждение означает получение первого абзаца, который является дочерним для div с id как content
Chrome SelectorGadget очень полезен при создании селекторов CSS для jSoup, просто по точкам и щелчкам. Это избавило меня от времени разработки при попытке настроить таргетинг на определенные поля.
Element link = doc.select("div.subtabs + p")
Он находит элемент, которому предшествует sibling
попробуй это:
Element link = doc.select("div.subtabs p").first();