使用BeautifulSoup抓取特定网站

嗨StackExchange社区!

我正在尝试运行将抓取以下网站的代码:http : //apps.mmc.gov.my/searchmmc/main_search.php?action= detail&id= 10000

进入一个数据集,该数据集由名称,资格,本科学位,临时注册号以及其下的工作地点组成。

由于网站的结构,最近几天我一直在苦苦挣扎:

-->
  </style>
  <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
  <title>
   :: MEDICAL REGISTER (MMC) ::
  </title>
 </head>
 <body>
  <table border="0" cellpadding="3" cellspacing="0" width="620">
   <tr class="f10px-table-caption" valign="bottom">
    <th colspan="3">
     <table border="0" cellpadding="3" cellspacing="0">
      <tr class="f10px-table-caption" valign="bottom">
       <th align="left" class="f10px-table-caption" scope="col" width="25%">
        NAME
       </th>
       <th class="f10px-table-caption" scope="col" width="5%">
        :
       </th>
       <th align="left" class="f10px-table-caption" scope="col" width="70%">
        JAPAR B ZAIRUN
       </th>
       <th rowspan="7">
        <img height="140" src="showusrimg.php?PP_id=10000" width="100"/>
       </th>
      </tr>
      <tr class="f10px-table-caption" valign="bottom">
       <th align="left" class="f10px-table-caption" scope="col" width="25%">
        QUALIFICATION
       </th>
       <th class="f10px-table-caption" scope="col" width="5%">
        :
       </th>
       <th align="left" class="f10px-table-caption" scope="col" width="70%">
        MD
       </th>
      </tr>
      <tr class="f10px-table-caption" valign="bottom">
       <th align="left" class="f10px-table-caption" scope="col" valign="top" width="25%">
        UNDERGRADUATE OF
       </th>
       <th class="f10px-table-caption" scope="col" valign="top" width="5%">
        :
       </th>
       <th align="left" class="f10px-table-caption" scope="col" valign="top" width="70%">
        UNIVERSITI KEBANGSAAN MALAYSIA (UKM)
       </th>
      </tr>
      <tr class="f10px-table-caption" valign="bottom">
       <th align="left" class="f10px-table-caption" scope="col">
        PROVISIONAL
        <br/>
        REGISTRATION NUMBER
       </th>
       <th class="f10px-table-caption" scope="col">
        :
       </th>
       <th align="left" class="f10px-table-caption" scope="col">
        20159
       </th>
      </tr>
      <tr class="f10px-table-caption" valign="bottom">
       <th align="left" class="f10px-table-caption" scope="col" width="25%">
        DATE OF
        <br/>
        PROVISIONAL REGISTRATION
       </th>
       <th class="f10px-table-caption" scope="col" width="25%">
        :
       </th>
       <th align="left" class="f10px-table-caption" scope="col" width="5%">
        --
       </th>
      </tr>
      <tr class="f10px-table-caption" valign="bottom">
       <th align="left" class="f10px-table-caption" scope="col" width="25%">
        FULL
        <br/>
        REGISTRATION NUMBER
       </th>
       <th class="f10px-table-caption" scope="col" width="5%">
        :
       </th>
       <th align="left" class="f10px-table-caption" colspan="2" scope="col" width="70%">
        31398
       </th>
      </tr>
      <tr class="f10px-table-caption" valign="bottom">
       <th align="left" class="f10px-table-caption" scope="col" width="25%">
        DATE OF
        <br/>
        FULL REGISTRATION
       </th>
       <th class="f10px-table-caption" scope="col" width="5%">
        :
       </th>
       <th align="left" class="f10px-table-caption" colspan="2" scope="col" width="70%">
        16-06-1995
       </th>
      </tr>
     </table>
    </th>
   </tr>
   <tr>
    <th bgcolor="#FFFFFF" class="f10px" scope="col">
    </th>
    <th bgcolor="#FFFFFF" class="f10px" scope="col">
    </th>
    <th bgcolor="#FFFFFF" class="f10px" scope="col">
    </th>
   </tr>
   <tr class="f10px-table-caption" valign="bottom">
    <th align="left" class="f10px-table-caption" colspan="3" scope="col">
     *
    </th>
   </tr>
   <tr class="f10px-table-caption" valign="bottom">
    <th bgcolor="#FFFFFF" class="f10px-table-caption" colspan="3" scope="col">
     <br/>
    </th>
   </tr>
   <tr>
    <th bgcolor="#FFFFFF" class="f10px-table-caption" colspan="3" scope="col">
     <table align="center" border="1" bordercolor="#000000" bordercolordark="#000000" bordercolorlight="#000000" cellpadding="3" cellspacing="0" width="100%">
      <tr bgcolor="#BDE3F9" class="f10px-table-header">
       <th align="center" colspan="5">
        APC
       </th>
      </tr>
      <tr bgcolor="#BDE3F9" class="f10px-table-header">
       <th align="center" width="4%">
        #
       </th>
       <th align="center" width="10%">
        APC YEAR
       </th>
       <th align="center" width="10%">
        APC NO
       </th>
       <th align="left" width="38%">
        PLACE OF PRACTICE (PRINCIPAL)
       </th>
       <th align="left" width="38%">
        PLACE OF PRACTICE (OTHERS)
       </th>
      </tr>
      <tr class="f10px-table-caption">
       <td align="center">
        1.
       </td>
       <td align="center">
        2017
       </td>
       <td align="center">
        15463
       </td>
       <td>
        KLINIK ELOPURA SDN BHD
        <br/>
        NO. 31, GF, 2ND AVENUE
        <br/>
        90000 SANDAKAN
        <br/>
        SABAH
       </td>
       <td>
       </td>
      </tr>
      <tr class="f10px-table-caption">
       <td align="center">
        2.
       </td>
       <td align="center">
        2016
       </td>
       <td align="center">
        13154
       </td>
       <td>
        KLINIK ELOPURA SDN BHD
        <br/>
        NO. 31, GF, 2ND AVENUE
        <br/>
        90000 SANDAKAN
        <br/>
        SABAH
       </td>
       <td>
       </td>
      </tr>
      <tr class="f10px-table-caption">
       <td align="center">
        3.
       </td>
       <td align="center">
        2015
       </td>
       <td align="center">
        10501
       </td>
       <td>
        KLINIK ELOPURA SDN BHD
        <br/>
        NO. 31, GF, 2ND AVENUE
        <br/>
        90000 SANDAKAN
        <br/>
        SABAH
       </td>
       <td>
       </td>
      </tr>
     </table>
    </th>
   </tr>
   <th bgcolor="#FFFFFF" class="f10px-table-caption" colspan="3" scope="col">
    Only the latest 3 years of the APC will be displayed as decided by the Council Members during the MMC meeting held on 12th July 2011.
   </th>
  </table>
  <p>
   <strong>
   </strong>
  </p>
  <script language="javascript">
   function GotoPage(pageno){
	
	//obj=document.all.item("clue");
	//obj2=document.all.item("cboSearch");
	//obj2.value=obj.value;
	
	obj=document.forms["searchuser"];
	obj.action="main_search.php?action=search&page=" + pageno;
	obj.submit();
}

function ShowDetails(id_pp){
	win=window.open("main_search.php?action=detail&id=" + id_pp);
	win.focus();
	/*obj.action="main_search.php?action=detail&id=" + id_pp;
	obj.submit();*/
}
  </script>
 </body>
</html>

如果我能弄清楚如何以结构化的方式提取姓名和资格,那本身就是一个巨大的成就。

非常感谢您抽出宝贵的时间阅读我的帖子。

宏杰李
import requests, bs4

r = requests.get('http://apps.mmc.gov.my/searchmmc/main_search.php?action=detail&id=10000')
soup = bs4.BeautifulSoup(r.text, 'lxml')
for tr in soup.select('tr table tr[valign="bottom"]'):
    print(tr.get_text(strip=True))

出去:

NAME:JAPAR B ZAIRUN
QUALIFICATION:MD
UNDERGRADUATE OF:UNIVERSITI KEBANGSAAN MALAYSIA (UKM)
PROVISIONALREGISTRATION NUMBER:20159
DATE OFPROVISIONAL REGISTRATION:--
FULLREGISTRATION NUMBER:31398
DATE OFFULL REGISTRATION:16-06-1995

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

需要使用xpath和beautifulsoup从网站抓取数据

使用BeautifulSoup网站抓取IMDb页面

python-使用BeautifulSoup抓取ajax网站的Web

无法使用BeautifulSoup4抓取网站

使用BeautifulSoup抓取网站后,如何分割单词和数字?

使用BeautifulSoup抓取网站时阅读页码

使用BeautifulSoup抓取网站后缺少文本

使用BeautifulSoup抓取网站时显示符号

使用Selenium和BeautifulSoup输入内容来抓取网站?

使用Python beautifulSoup抓取特定的dd项目

使用beautifulsoup抓取HTML网站ID的特定部分

使用python中的BeautifulSoup从网站抓取报告

使用BeautifulSoup 4.8.2从网站抓取表格

当我尝试使用BeautifulSoup从网站抓取时缺少文本

如何使用Beautifulsoup从网站上抓取产品价格?

如何使用BeautifulSoup从eCom网站上抓取<li>?

使用BeautifulSoup从网页中抓取特定链接

使用python和beautifulsoup抓取多页网站

使用beautifulsoup从网站抓取表格,最后出现错误

使用python 2.7和beautifulsoup 4进行网站抓取

使用 BeautifulSoup 抓取网站:TypeError: 'NoneType' 对象不可调用

使用 BeautifulSoup 从网站抓取数据的问题

无法使用beautifulsoup抓取日本网站

如何使用 BeautifulSoup 抓取特定数据

使用 BeautifulSoup 抓取:从 HTML 页面抓取表格中的特定列

无法使用 BeautifulSoup 抓取特定表格

使用 python 抓取网站 - BeautifulSoup

不使用beautifulsoup抓取网站数据

使用 beautifulsoup 抓取代碼的特定部分