1

我正在尝试遍历互联网上的 html 文件。

target = br.response().read()
for row in target:
    if "[some text]" in row:
    print next(target)

问题是这个循环遍历 html 文件中的每个字符,所以它永远找不到匹配项。我如何让它遍历每一行?

我试过target = target.splitlines()了,但这确实弄乱了文件。

4

2 回答 2

3

您基本上想要实现的是以下内容(从文件中读取,如您的标题所示):

#!/usr/bin/env python

import sys

with open("test.txt") as file:
    for line in file:
        if "got" in line:
            print "found: {0}".format(line)

你想打开你的文件("test.txt")

您阅读每一行 ( for .. in)

并查看该行是否包含一个字符串,这in很好:)

如果您对行号感兴趣:

    for index, line in enumerate(file):

但要注意索引从 0 开始,所以当前行号是index+1

模拟,如果您想从 String 作为文件读取,请查看StringIO

于 2013-10-22T13:52:58.917 回答
0

查看您正在查看的文件的页面源代码,因为这是您作为响应返回的内容。我有一种感觉,你得到的回应实际上并没有你想要的新行。对于像http://docs.python.org/这样源代码可读的页面,您的 splitline() 方法效果很好,但对于源代码基本上没有换行符的网站,例如 Google 的主页,它更接近您的问题'正在经历。

根据您要实现的目标,最好的选择可能是使用像 lxml 这样的 html/xml 解析库。否则使用re可能是一种非常安全的方法。两者都比试图猜测应该在哪里换行要好得多。

于 2013-10-22T14:28:45.643 回答