【发布时间】:2015-07-06 14:17:55
【问题描述】:
在我的代码中,我试图将网页中的第一行文本放入 python 中的变量中。目前我正在使用 urlopen 来获取我想要阅读的每个链接的整个页面。我如何只阅读网页上的第一行文字。
我的代码:
import urllib2
line_number = 10
id = (np.arange(1,5))
for n in id:
link = urllib2.urlopen("http://www.cv.edu/id={}".format(n))
l = link.read()
我想从网页的以下html代码中提取“旧车”一词:
<html>
<head>
<link rel="stylesheet">
<style>
.norm { font-family: arial; font-size: 8.5pt; color: #000000; text-decoration : none; }
.norm:Visited { font-family: arial; font-size: 8.5pt; color: #000000; text-decoration : none; }
.norm:Hover { font-family: arial; font-size: 8.5pt; color : #000000; text-decoration : underline; }
</style>
</head>
<body>
<b>Old car</b><br>
<sup>13</sup>CO <font color="red">v = 0</font><br>
ID: 02910<br>
<p>
<p><b>CDS</b></p>
【问题讨论】:
-
第一行会一直在
<b>标签内吗? -
就像 Anand 暗示的那样,如果第一行总是在
<b>标记中,那么您可以使用 Python 的正则表达式库中的 buildt,re来获取<b>之间的任何内容标签 -
不清楚你需要什么。你想从这个网页中提取“旧车”这个词,还是想知道如何提取任何网页上的第一行词?
-
是的,它将始终位于 标记中,但稍后在网页中的 标记内可能会有其他我不想要的内容。在这个例子中,我需要提取的词是 old car 但在其他网页上,确切的词会有所不同,但每次都在 html 代码中的相同位置。
-
“相同位置”是什么意思?因为您总是可以扩展您的正则表达式以获取
<body>\n<b>之后的任何内容。如果您基于<b>标记之间的所有内容进行正则表达式,您也可以只选择它返回的列表中的第一个元素。您还可以使用string.find,它将返回<b>和</b>标记所在位置的first 索引,然后仅列出它们两个结果之间的字符串。