我正在尝试在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文件,每行信息作为新行,每条信息都在不同的列中。关于如何做到这一点的任何建议?
感谢您的帮助!
答案 0 :(得分:0)
使用lxml
和XPath
:
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>
,但这不应该是一个太大的问题。)