python中的嵌套隐藏标记抓取
首先,python和web抓取非常新 我有一页需要删掉。我查看了很多源代码,但无法找出删除嵌套隐藏标签的方法。该页面需要登录并能够获取可见数据,我的代码成功地执行了这些数据。但是,当涉及到在python中的嵌套隐藏标记抓取,python,web-scraping,beautifulsoup,mechanize,Python,Web Scraping,Beautifulsoup,Mechanize,首先,python和web抓取非常新 我有一页需要删掉。我查看了很多源代码,但无法找出删除嵌套隐藏标签的方法。该页面需要登录并能够获取可见数据,我的代码成功地执行了这些数据。但是,当涉及到在div标记中删除嵌套元素时,它找不到任何东西 HTML(onClick()事件之前) Python代码 import mechanize from bs4 import BeautifulSoup import urllib import http.cookiejar as cookielib from b
div
标记中删除嵌套元素时,它找不到任何东西
HTML(onClick()事件之前)
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"})
此代码帮助我获取
div
,但其中没有任何内容。是否有方法获取当前隐藏在此div
中的跨度?
有许多方法可以提取内部隐藏元素,如span、src和alt标记
containers = page_soup.find("div",{"id":"topMenu"})
top_span=containers.find_all('span',class_='cSub')
print(len(top_span)
#len of spans is two
inner_span=top_span[0].find('span')
inner_span_text=inner_span.text
class_inside_inner_span=inner_span['class']
有关web抓取的更多详细信息,请参阅我的这篇文章:“有很多方法可以提取内部隐藏元素,如span、src和alt-tag
containers = page_soup.find("div",{"id":"topMenu"})
top_span=containers.find_all('span',class_='cSub')
print(len(top_span)
#len of spans is two
inner_span=top_span[0].find('span')
inner_span_text=inner_span.text
class_inside_inner_span=inner_span['class']
有关网页抓取的更多详细信息,请参阅我的这篇文章:“您是否尝试过简单的items=soup.select(“#topMenu[id='1']”),我想部分取决于您是否需要实际的页面操作来启用这些选项。它是空的。这就是我得到的:[]您可能需要一些类似selenium的东西,以便与页面进行交互。您期望的输出是什么?最里面的span@JackFleetinghave your try simply items=soup中的文本。选择(“#topMenu[id='1']”)我想部分取决于你是否需要一个实际的页面操作来启用这些选项。它是空的。这是我得到的:[]您可能需要类似selenium的东西,以便与页面交互。您的预期输出是什么?最里面的span@jackFleering中的文本当我打印此文件的长度时,它输出0。它仍然不知何故没有得到spanHi caitlin,我不知道你为什么得到span zero的len,但据我所知,你可能选择了错误的类名。我已经找到了使用Selenium的解决方案当我打印这个的长度时,它输出0。它仍然不知何故没有得到spanHi caitlin,我不知道你为什么得到span zero的len,但据我所知,你可能选择了错误的类名。我已经用selenium找到了解决方案
containers = page_soup.find("div",{"id":"topMenu"})
top_span=containers.find_all('span',class_='cSub')
print(len(top_span)
#len of spans is two
inner_span=top_span[0].find('span')
inner_span_text=inner_span.text
class_inside_inner_span=inner_span['class']