如何使用url.open()从网站中提取数据的一部分

时间:2017-02-07 13:44:17

标签: python web text-parsing

我写了一个连接到这个网站的程序

http://mbox.dr-chuck.net/sakai.devel/1/2

我需要解析它并在该网站上收到电子邮件

url = http://mbox.dr-chuck.net/sakai.devel/1/2
data = urllib.urlopen(url).read()
for line in data:
    templine = line.strip()
    print templine

但它会打印单个字母而不是单词 就像我试图从中打印特定的一行

F
r
o
m

n
e
w
s

如何解决这个请帮助我 怎么做,我需要我的程序打印成行

  • 对不起我的语言,这是我发布的第一个问题

2 个答案:

答案 0 :(得分:2)

如果您使用python3,则可以执行以下操作:

from urllib.request import urlopen

data = urlopen("http://mbox.dr-chuck.net/sakai.devel/1/2").read().decode("utf8").split("\n")

for k in data:
    print(k)

更新

如果您只想打印给定网址的第二行,您可以执行以下操作:

print(data[1])
>>> 'From: "Glenn R. Golden" <ggolden@umich.edu>'

否则,如果您要打印以FromFrom:开头的所有行,您可以执行以下操作:

for k in data:
    if k.split(" ")[0] == "From" or k.split(" ")[0] == "From:":
        print(k)

输出:

From news@gmane.org Tue Mar 04 03:33:20 200
From: "Glenn R. Golden" <ggolden@umich.edu>

答案 1 :(得分:1)

url = 'http://mbox.dr-chuck.net/sakai.devel/1/2'
data = urllib.urlopen(url).readlines()
for line in data:
    if line.startswith('From'):
        print (line)

出:

From news@gmane.org Tue Mar 04 03:33:20 2003

From: "Glenn R. Golden" <ggolden@umich.edu>

使用readlines()获取文件中的每一行

使用startswith()获取以From

开头的行