在抓取操作期间,我注意到有几页有雀巢孩子。我目前的代码并没有将这些孩子置于他们的父母之下。我如何将这些孩子和父母一起偎依?我的代码也没有分组" p"当它们在HTML中逐步跟随时,它们会一起标记。我还注意到了' li'使用当前代码拾取标记两次。
HTML
<div class="detail-item">
<h3>Family Name</h3>
<p>Some Family Name<br></p>
<p>Sub Family Name<br></p>
<p>Sub Family Name<br></p>
<ul>
<li>1st Child Name</li>
<li>2nd Child Name</li>
<li>3rd Child Name</li>
</ul>
<p>Some Other Family Name<br></p>
<ul>
<li>1st Child Name</li>
<li>2nd Child Name</li>
<li>3rd Child Name</li>
</ul>
</div>
<div class="detail-item">
<h3>Family Name</h3>
<p>Some Family Name;
<br>1st Child Name;
<br>2nd Child Name;
<br>3rd Child Name
</p>
</div>
CODE
for header in primary_details:
try:
if 'Family Name' in header.h3.text:
for p_tag in header.find_all('p', recursive=False):
print(p_tag.text)
for li_tag in header.find_all('li', recursive=False):
print(li_tag.text)
for a_tag in header.find_all('a', recursive=False):
print (a_tag.text)
except:
continue
当前输出
网页1:
某些姓氏
子姓名
子姓名
其他一些姓氏
第3个孩子姓名
第一个孩子姓名
网页2:
某些姓氏;第一个孩子的姓名;第二个孩子的姓名;第三个孩子的姓名
渴望输出
网页1:
某些姓氏
子姓名
子姓名
其他一些姓氏
网页2:
某些姓氏
第一个孩子姓名
第二个孩子的姓名
第3个孩子名字
答案 0 :(得分:0)
尝试更改缩进
for header in primary_details:
try:
if 'Family Name' in header.h3.text:
for p_tag in header.find_all('p'):
print(p_tag.text)
for li_tag in header.find_all('li'):
print(li_tag.text)
for a_tag in header.find_all('a'):
print (a_tag.text)
except:
continue