【发布时间】:2016-08-27 21:08:19
【问题描述】:
我正在解析一个带有请求模块的网站,并且我试图在不使用 BeautifulSoup 的情况下获取标签内的特定 URL(但一个数据表,因为标签被多次使用)。这是我要解析的部分代码:
<td class="notranslate" style="height:25px;">
<a class="post-list-subject" href="/Forum/ShowPost.aspx?PostID=80631954">
<div class="thread-link-outer-wrapper">
<div class="thread-link-container notranslate">
Forum Rule: Don't Spam in Any Way
</div>
我正在尝试获取标签内的文本:
/Forum/ShowPost.aspx?PostID=80631954
问题是,因为我正在解析一个论坛站点,所以这些分隔标签有多种用途。我想使用类似下面的代码使用 string.split 检索帖子 URL 表:
htmltext.split('<a class="post-list-subject" href="')[1].split('"><div class="thread-link-outer-wrapper">')[0]
HTML 代码中没有任何内容表明页面上的帖子编号,只有链接。
【问题讨论】:
-
要解析 HTML,请使用 HTML 解析器;这就是它们的设计目的。
-
@ScottHunter 我知道我可以使用 HTML 解析器,但我不想为没有那个模块就可以完成的小事情导入一个大模块。从长远来看,它更有效,执行时间也是如此。我现在拥有的代码会遍历这些论坛帖子的 PAGES 并收集此类数据。
-
然而,你在这里,需要帮助。如果你只是做简单的解析,那么你可能只需要一个简单的解析器,或者只是一个更大的解析器的一部分。当存在专门为此类任务构建的现有工具时,您不仅在重新发明轮子,而且还在请求其他人帮助您这样做。
-
正如我在个人资料中所说,在优化之前先测量。在担心几毫秒的运行时间之前,先担心用胶带构建假 HTML 解析器的麻烦。
标签: python string html-parsing