使用 Python - 从一些 html 中获取一个表格并显示它



这里有很多帮助,但其中一些超出了我的头脑,所以希望通过提出我的问题并获得量身定制的答案,我会更好地理解。

到目前为止,我已经设法连接到一个网站,以用户身份进行身份验证,填写表格,然后下拉 html。html包含我想要的表格。我只想说一些类似的话:-

阅读目录...当您读取表开始标记时,请继续前进,直到到达表结束标记,然后将其丢弃,或者将其写入新的HTML文件并打开它,保留标记,以便为我形成。

这是我到目前为止的代码。

# Use 'with' to ensure the session context is closed after use.
with requests.Session() as s:
s.post(LOGINURL, data=login)
# print
r = s.get(LOGINURL)
print r.url
# An authorised request.
r = s.get(APURL)
print r.url
    # etc...
s.post(APURL)
#
r = s.post(APURL, data=findaps)
r = s.get(APURL)
#print r.text


f = open("makethisfile.html", "w")
f.write('n'.join(['<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">',
                   '<html>',
                   ' <head>',
                   ' <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">',
                   ' <title>THE TITLE</title>',
                   ' <link rel="stylesheet" href="css/displayEventLists.css" type="text/css">',
                   r.text #this just does everything, i need to get the table.
                   ])
        )
f.close()

尽管最好正确解析文件,但快速而肮脏的方法使用正则表达式。

m = re.search("<table.*?>(.+)</table>", r.text, re.S)
if (m):
  print m.group()
else:
  print "Error: table not found"

作为为什么解析更好的一个例子,编写的正则表达式将失败,并显示以下(相当人为的!)示例:

<!-- <table> -->
blah
blah
<table>
this is the actual
table
</table>

正如所写的那样,它将获得文件中的第一个表。但是你可以循环获取第二个,等等,(或者如果可能的话,使正则表达式特定于你想要的表),所以这不是问题。

相关内容

  • 没有找到相关文章

最新更新