Перво-наперво, очень плохо знакомый с python и утилизацией в сети.
У меня есть страница, которую нужно очистить.Я смотрел на множество источников и не мог понять, как копировать вложенные скрытые теги.Страница требует логин и возможность получить видимые данные, которые мой код успешно выполняет.Однако, когда дело доходит до удаления вложенных элементов внутри тега div
, он ничего не находит.
HTML (до события onClick ())
<div id="topMenu" style="width: 1920px; position: relative; top: 46px;" onclick="menu(event);" oncontextmenu="javascript:if(!event.ctrlKey){return RightClickPopUp(event);}">
<span id="3" class="cSub" lcid="63" lccl="Item" style="visibility: hidden; display: none; top: 20px;">
<span id="1" menuname="Cancel" parentid="63" class="Menu01" showmenu="010">Cancel</span>
</span>
<span id="3" class="cSub" lcid="63" lccl="Item" style="visibility: hidden; display: none; top: 20px;">
<span id="1" menuname="Cancel" parentid="63" class="Menu01" showmenu="010">Cancel</span>
</span>
</div>
После того, как я нажму div
(состоит из нескольких кнопок), первый тег span
становится видимым, а затем переходит в соответствующий вложенный тег span
.Моя проблема заключается в доступе к тексту в самом внутреннем span
.
HTML (после события onClick ())
<div id="topMenu" style="width: 1920px; position: relative; top: 46px;" onclick="menu(event);" oncontextmenu="javascript:if(!event.ctrlKey){return RightClickPopUp(event);}">
<span id="3" class="cSub" lcid="63" lccl="Item" style="visibility: visible; display: inline; top: 20px;">
<span id="1" menuname="Cancel" parentid="63" class="Menu01" showmenu="010">Cancel</span>
</span>
<span id="3" class="cSub" lcid="63" lccl="Item" style="visibility: visible; display: inline; top: 20px;">
<span id="1" menuname="Cancel" parentid="63" class="Menu01" showmenu="010">Cancel</span>
</span>
</div>
Код Python
import mechanize
from bs4 import BeautifulSoup
import urllib
import http.cookiejar as cookielib
from bs4 import BeautifulSoup as soup
cj = cookielib.CookieJar()
br = mechanize.Browser()
br.set_cookiejar(cj)
br.open("LOGIN_URL")
br.select_form(nr=0)
br.form['USER'] = 'un'
br.form['PASSWORD'] = 'pwd'
br.submit()
check = br.response().read()
print(check) //login success
my_url = br.open("URL_I_NEED_TO_SCRAPE").read()
page_soup = soup(my_url, "html.parser")
containers = page_soup.find("div",{"id":"topMenu"})
Thisкод помогает мне получить div
, но ничего внутри.Есть ли способ получить spans
, которые в данный момент скрыты внутри этой div
?