python - Beautiful Soup当标签同级时候要怎么取值?
巴扎黑
巴扎黑 2017-04-17 17:31:51
0
3
967

遇到一个平级标签的页面,如下显示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    <h2>1. 测试标题一</h2>
    <h2 class="lesson-info-h2"><a href="http://www.xxx.xxx.com/1374.html" target="_blank">测试一小标题1</a></h2>
    <h2 class="lesson-info-h2"><a href="http://www.xxx.xxx.com/1410.html" target="_blank">测试一小标题2</a></h2>
    <h2 class="lesson-info-h2"><a href="http://www.xxx.xxx.com/1520.html" target="_blank">测试一小标题3</a></h2>
    <h2>2. 测试标题二</h2>
    <h2 class="lesson-info-h2"><a href="http://www.xxx.xxx.com/779.html" target="_blank">测试二小标题1</a></h2>
    <h2 class="lesson-info-h2"><a href="http://www.xxx.xxx.com/842.html" target="_blank">测试二小标题2</a></h2>
    <h2 class="lesson-info-h2"><a href="http://www.xxx.xxx.com/997.html" target="_blank">测试二小标题3</a></h2>
    <h2>3. 测试标题三</h2>
    <h2 class="lesson-info-h2"><a href="http://www.xxx.xxx.com/2301.html" target="_blank">测试三小标题1</a></h2>
    <h2 class="lesson-info-h2"><a href="http://www.xxx.xxx.com/1976.html" target="_blank">测试三小标题2</a></h2>
    <h2 class="lesson-info-h2"><a href="http://www.xxx.xxx.com/1905.html" target="_blank">测试三小标题3</a></h2>
    <h2 class="lesson-info-h2"><a href="http://www.xxx.xxx.com/2440.html" target="_blank">测试三小标题4</a></h2>
    <h2>4. 测试标题四</h2>
    <h2 class="lesson-info-h2"><a href="http://www.xxx.xxx.com/1722.html" target="_blank">测试四小标题1</a></h2>
    <h2 class="lesson-info-h2"><a href="http://www.xxx.xxx.com/1518.html" target="_blank">测试四小标题2</a></h2>

</body>
</html>

我最终要取得的值是

  1. 测试标题一

    测试一小标题1,小标题1的链接
    测试一小标题2,小标题2的链接

    ...

  2. 测试标题四

    测试四小标题1,小标题1的链接
    测试四小标题2,小标题1的链接
    

    我原本使用的是

h2_a = soup.find_all('h2')
for i_a in h2_a:
    print i_a

这样是可以把需要的h2取到,但想要在继续循环去那些小标题时候,由于得到type(i_a)为<class 'bs4.element.Tag'>
就不知道要怎么取了。

问大神给指点一下。

巴扎黑
巴扎黑

모든 응답(3)
Ty80

으아악

python3 아래. Python2의 인쇄물을 작성하는 방법을 모르겠습니다. 귀하의 요구 사항을 충족하는지 궁금합니다

Ty80

나쁜 OS라 중국어를 못쓰네요.

re을 사용하면 이 문제를 해결할 수 있을 것 같습니다.

으아악

그러면 aresList가 상위 제목이고 a[0]이 하위 콘텐츠라고 가정해 보겠습니다. a[1]한번 해보세요.

阿神

soup.find_all('h2', class_=None)
이렇게 하면 필요한 것을 직접 찾을 수 있습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿