我编写了一个脚本来解析网页并获取链接数量('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
如何将其转换为列表以计算链接数量?我使用link.split()但它得到了我:
['./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]
谢谢!
答案 0 :(得分:7)
link.split()
尝试拆分链接本身。但您必须使用代表所有链接的实体。在您的情况下:dom.xpath('//a/@href')
。
所以这必须帮助你:
links = list(dom.xpath('//a/@href'))
使用内置len
函数获取长度:
print len(links)
答案 1 :(得分:3)
list(dom.xpath('//a/@href'))
这将采用dom.xpath
返回的迭代器并将每个项放入列表中。