Python:从HTML中提取行

2024-04-23 19:18:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python很陌生。。。在

我正在编写一个代码,它使用urllib2库搜索某个网页。我正在使用命令re.findall搜索此网页上的特定字符串。但是,我不想提取这些特定的字符串,而是要提取这些字符串所在的整行。在

例如,假设我在一个网页上搜索单词“hello”,它看起来像这样:

Hello, my name is Bob. I am Bob.

My friend is Jane.

My name is Jane... hello!

我想提取其中包含“hello”的行。(这意味着我要提取第一行和第三行。)这是我在下面使用的,这显然是错误的,因为它只提取单词,而不是单词出现的整行:

Page_Content = urllib2.urlopen(My_URL).read()
Matches = re.findall("hello", Page_Content)

如何修改此代码以提取整行代码?我要用某种for循环逐行搜索吗?如果是这样,我该怎么做呢?在

^{pr2}$

是吗?在


Tags: 字符串代码namere网页helloismy
2条回答

我喜欢Eran的方法,但这里有另一种方法,它使用regex更频繁一些,并且避免使用for循环:

pattern = re.compile("\n.*hello.*\n")
matching_lines = re.findall(pattern, Page_Content)

通过用\n包围模式,我们确保匹配了一整行。.*是表示“零个或多个任意字符”的regex,因此它将匹配其中包含“hello”的任何行。在

对于regex问题,可以遍历该文件并使用搜索在

for line in content:
   if re.search("hello",line):
      print line

或者更好的方法是先编译re

^{pr2}$

相关问题 更多 >