我正试图刮去一个网页。通过检查页面上的元素,我找到了所需的标记。但是,当尝试使用BeautifulSoup刮取它时,目标标记是隐藏的
以下是省略号隐藏的目标标记: target tag
这是我的代码:
url = 'https://www.jisilu.cn/data/cbnew/cb_index/'
txt = requests.get(url)
txt.raise_for_status()
txt.encoding = 'utf-8'
soup = BeautifulSoup(txt.text, "html.parser")
body = soup.find('body')
div1 = body.find('div', attrs = {'class': 'grid data_content'})
div2 = div1.find_all('div', attrs = {'class': 'grid-row'})[1]
td = div2.find('td', attrs = {'valign': 'top'})
div3 = td.find('div', attrs = {'id': 'cb_index'})
div3
输出:
"div class="cbindex_quote_info" id="cb_index" style="margin-left:60px;margin-right:20px;width:700px;display:inline-block;font-weight:bolder;">.../div"
如您所见,想要的内容是隐藏的。我能找到这个问题的可能解决办法吗
迭代
<a>
以从子跨度获取所有数据或者使用
element.encode_contents()
当我遇到这个问题时,我通常用
find_all()
替换select()
函数它稍微长一点,但我发现它通常对我有效,没有我注意到的时间差
如果您注意到可能是因为HTML元素的某些部分丢失,则考虑将下面的代码的修改版本添加到隐藏的任何元素
希望这有帮助
相关问题 更多 >
编程相关推荐