刮除没有定义元素的网页

时间:2015-11-29 19:32:57

标签: python html web-scraping

我正在尝试在python中抓取一个非常简单的网页。

我在抓取时发现的大多数方向都会指示您查看源以确定结构,然后使用"元素"访问您需要的信息。然而,我正在使用的网页格式很差,并且没有在线示例中描述的元素类型。

我的网页如下:

<html>
  <head></head>
  <body>
    "Title 1, Title 2, Title 3"
    <br>
    "Info 1, Info 2, Info 3"
    <br>
    "Info 1, Info 2, Info 3"
    <br>
  </body>
</html>

我希望能够将所有这些内容读入excel文件,每行信息作为新行,每条信息都在不同的列中。关于如何做到这一点的任何建议?

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

使用lxmlXPath

from lxml import html

HTML = """<html>
  <head></head>
  <body>
    "Title 1, Title 2, Title 3"
    <br>
    "Info 1, Info 2, Info 3"
    <br>
    "Info 1, Info 2, Info 3"
    <br>
  </body>
</html>"""

tree = html.fromstring(HTML)
results = [x.strip() for x in tree.xpath('//body/text()')]
print results

<强>输出:

[
  '"Title 1, Title 2, Title 3"',
  '"Info 1, Info 2, Info 3"',
  '"Info 1, Info 2, Info 3"',
  ''
]

您最终可以使用csv库来编写可以使用Excel打开的CSV格式文件。

答案 1 :(得分:-1)

我会这样开始:抓住整个<body>(即将<body>作为在线示例中描述的元素之一)。

然后将整个字符串保存为文本文件。 (如果您使用csv作为扩展程序,则可以立即使用Excel打开它。)

在Excel中打开它。如果您很幸运,将逗号视为列分隔符,那么您就去了! (只需要摆脱那些<br>,但这不应该是一个太大的问题。)