我使用Python 2.7尝试对网站进行简单调用以提取HTML数据,我已使用下面的代码管理这些数据。
import requests
from HTMLParser import HTMLParser
name = "Mark"
surname = "Jacobs"
def req_getPageHTML(nume, prenume):
url = "http://sample.com/page.aspx&Name=" + name + "&surname=" + surname
response = requests.get(url).text
return response
page_code = req_getPageHTML(nume, prenume)
htmlp = HTMLParser()
print htmlp.feed(page_code)
我要做的下一件事是以某种方式提取或解析此UNICODE
响应(print type(page_code)
返回UNICODE
)以某种方式从中提取一些信息。
具体来说,从下面的示例HTML我可以回来,我想提取值(在下面的HTML代码中略微插入的数字,并且前缀为>
- 这不是存在于HTML代码中,它只是为了让你们很容易识别出来。)
...
<tr class="tr1" OnClick="lockBac();">
<td class="tdB" rowspan="2" nowrap="nowrap">1</td>
<td class="tdB" rowspan="2" nowrap="nowrap">Jacobs D <br/>Mark</td>
<td class="tdB" rowspan="2" align="Center">Math speciality</td>
<td class="tdB" rowspan="2" align="Center">Advanced User</td>
> <td class="tdB" rowspan="2" align="Center">6.95</td>
> <td class="tdB" rowspan="2" align="Center">7.9</td>
> <td class="tdB" rowspan="2" align="Center">7.9</td>
<td class="tdB" colspan="4" align="Center"></td>
<td class="tdB" rowspan="2" align="Center">English</td>
<td class="tdB" rowspan="2" align="Center">B2-B2-B2-B2-B2</td>
<td class="tdB" colspan="3" align="Center">Mathematics MATH-INFO</td>
<td class="tdB" colspan="3" align="Center">Informatics</td>
<td bgcolor="lightgreen" class="tdB" rowspan="2" align="Center"></td>
<td class="tdB" rowspan="2" align="Center">8.88</td>
<td class="tdB" rowspan="2" align="Center">Success</td>
</tr>
<tr class="tr1" OnClick="lockBac();">
<td class="tdB"></td>
<td class="tdB"></td>
<td class="tdB"></td>
<td class="tdB"></td>
> <td class="tdB">9.35</td>
> <td class="tdB"></td>
> <td class="tdB">9.35</td>
> <td class="tdB">9.4</td>
<td class="tdB"></td>
> <td class="tdB">9.4</td>
</tr>
...
这些数字代表的是考试分数,我稍后会将其放入数据库中。
现在,我正在尝试寻找一种有效的方法来提取这些数字,因为我希望保留解析文本以查找每个元素(手动使用SUBSTR
等等)作为最后一个选项。
我确实遇到了HTMLParser,您可以看到它也会导入到我的代码中,但底部print
会返回None
。
我的印象是我可以使用这个库来解析从response
收到的文本,并且有一种更简单的方法来指定标签ID(或类似的东西)并从中提取相关信息(就像它显示在HTMLParser examples section中一样,但我无法使用feed
方法获得我想要的必要信息。
也许我没有正确理解这一点,也许我没有使用合适的工具,所以我也解释了我的目标。
我很感激帮助纠正或指出我正确的方向。