Python拆分为换行符

Python拆分为换行符,python,string,split,beautifulsoup,urllib2,Python,String,Split,Beautifulsoup,Urllib2,我有一个html文件,我只是检索文本的主体 我想打印一行 现在我正在打印 for line in newName.body(text=True): print line 这给了我身体里的一切 我想要的是像这样打印 for line in newName.body(text=True): print line[257:_____] # this is where i need help 我希望它转到换行符,而不是选择另一个数字结束 看来 for line in newName.

我有一个html文件,我只是检索文本的主体

我想打印一行

现在我正在打印

for line in newName.body(text=True):
    print line
这给了我身体里的一切 我想要的是像这样打印

for line in newName.body(text=True):
    print line[257:_____] # this is where i need help
我希望它转到换行符,而不是选择另一个数字结束 看来

for line in newName.body(text=True):
    print line[257:'\n'] 
然而,这是可行的 我怎样才能做到这一点

我正在处理的文本位于 身体 之前 我想要的文本 /前 /body

您可以使用它来获取第一行:

first_line = newName.body.getText().partition("\n")[0]
假设
newName
BeautifulSoup
对象。它通常被命名为

从第一个

text = soup.pre.string
要获取文本中的行列表,请执行以下操作:

list_of_lines = text.splitlines(True)
ith_line = list_of_lines[i]
如果要在文本中保留行尾标记,请执行以下操作:

list_of_lines = text.splitlines(True)
ith_line = list_of_lines[i]
要从列表中获取第i行,请执行以下操作:


注意:基于零的索引,例如,
i=2
对应于第三行。

不能保证HTML文件有多行。网页可以按行排列,但页面的结构不必与标记的结构相匹配,反之亦然

为了确保这一点,请尝试以下方法:

打印len(newName.body(text=True).split('\n'))

如果该值大于1,则应该能够获得所需的行,如:

newName.body(text=True).split('\n')[257]


也许不是最优雅的方式,但如果事实上有多行,它会起作用。

是不是你想要
行[127:line.find('\n')]
因为你确定它来自
127
,那么同样你必须确保有一行
\n

“我想打印一行”是否打印newName.body(text=True)[257]
按预期工作?否这会产生一个错误“列表索引超出范围”发布了错误的错误消息正确的错误消息是“ValueError:substring not found”您确定使用regexp不会提供更好的解决方案吗?似乎您正在获取HTML文档正文的文本,并尝试从127个字符一直获取到“\n”-事实上,这些文本位实际上是文档结构的一部分,这意味着Xpath或类似的内容将是一个更好的选择-也许您可以提供一个您尝试获取的HTML页面片段提取。@sotapme代码类似于“cptn cheesebox loves cerial”这些都是单独的行,但我不知道如何使其看起来像代码这会产生错误“AttributeError:'NoneType'对象没有属性'partition'”@MysterMyster:try
.getText()
。它也应该在旧的
beautifulsou
版本上工作。这会产生索引器:tuple index out-range OK,所以现在如果我先执行\u line=newName.body.getText().partition('\n')[2],它会像以前一样返回第257行的所有文本,但现在打印第一行[257:@mystermyyster:
.partition()
返回3-tuple。总是。你不能用我的答案中的代码获取Indexer。如果要获取行列表,可以使用
.splitlines()
。但是使用行号从html中提取内容是非常脆弱的。要在要提取的文本周围包含您看到的html标记,请执行以下操作:第一行生成attributeError:“resultset”对象没有属性拆分