如何将输出转换为列表来计算它的数量?

2024-06-02 07:18:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个脚本,可以解析一个网页,并获取其上的链接量(“a”标记):

import urllib
import lxml.html
connection = urllib.urlopen('http://test.com')
dom =  lxml.html.fromstring(connection.read())
for link in dom.xpath('//a/@href'):
    print link

脚本的输出:

./01.html
./52.html
./801.html
http://www.blablabla.com/1.html
#top

如何将其转换为列表以计算链接的数量?我用链接.拆分()但我明白了:

['./01.html']
['./52.html']
['./801.html']
['http://www.blablabla.com/1.html']
['#top']

但我想得到:

[./01.html, ./52.html, ./801.html, http://www.blablabla.com/1.html, #top]

谢谢!你知道吗


Tags: import脚本comhttp网页链接tophtml
2条回答

link.split()尝试拆分链接本身。但您必须使用表示所有链接的实体。在您的情况下:dom.xpath('//a/@href')。你知道吗

因此,这必须帮助您:

links = list(dom.xpath('//a/@href'))

以及使用内置的len函数获取长度:

print len(links)
list(dom.xpath('//a/@href'))

这将使用dom.xpath返回的迭代器,并将每个项放入一个列表中。你知道吗

相关问题 更多 >