Python2.7使用bs4获取下一个标记

时间:2017-07-18 08:58:04

标签: html python-2.7 web-scraping beautifulsoup

我有来自

的html部分

http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&u=%2Fnetahtml%2FPTO%2Fsearch-adv.htm&r=1&p=1&f=G&l=50&d=PTXT&S1=V2V&OS=V2V&RS=V2V

<CENTER><b>U.S. Patent Documents</b></CENTER>
<TABLE width="100%"> 
    <TR>
        <TH scope="col" width="33%"></TH> 
        <TH scope="col" width="33%"></TH>
        <TH scope="col" width="34%"></TH>
    </TR> 
    <TR> 
        <TD align="left"><a href="http://appft.uspto.gov/netacgi/nph-Parser?TERM1=20130322542&Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.html&r=0&f=S&l=50" target="_blank">2013/0322542</a></TD>
        <TD align=left>December 2013</TD>
        <TD align=left>Senzaki et al</TD>
    </TR>
    <TR>
        <TD align=left><a href="http://appft.uspto.gov/netacgi/nph-Parser?TERM1=20130336397&Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.html&r=0&f=S&l=50" target="_blank">2013/0336397</a></TD>
        <TD align=left>December 2013</TD>
        <TD align=left>Senzaki et al.</TD>
    </TR>
</TABLE>

我的问题是,如果&#34;美国,我想提取TABLE。专利文献&#34;存在于html中,如图所示(链接1)。

但是标题(&#39;美国专利文件&#39;)和TABLE正文没有共享相同的顶级标签,因此我无法使用类似

的内容
tb_body = soup.find('center').find('table')

那么有什么方法可以帮助我做到这一点吗?

非常感谢!!

1 个答案:

答案 0 :(得分:0)

使用tb_body.findNext('table')可以轻松完成此操作。如果存在,则返回table标记,否则为None

或者,您可以使用tb_body.find_next_sibling('table')

如果表存在,则这两个命令都会返回该表:

<table width="100%">
 <tr>
  ...