0

今天看一个爬虫代码的时候遇到如下代码:

links = getLinks("/wiki/Python_(programming_language)")
print(links)
while(len(links) > 0):
    for link in links:
        print("-------------------")
        historyIPs = getHistoryIPs(link.attrs["href"])
        for historyIP in historyIPs:
            print(historyIP)
    newLink = links[random.randint(0, len(links)-1)].attrs["href"]
    links = getLinks(newLink)

像这里的link.attrs中的attrs我了解到是从得到的链接里面找到相对应的属性。
但像这样的话

>>> import attr
>>> @attr.s
... class C(object):
...     x = attr.ib(default=42)
...     y = attr.ib(default=attr.Factory(list))
...
...     def hard_math(self, z):
...         return self.x * self.y * z
>>> i = C(x=1, y=2)
>>> i
C(x=1, y=2)
>>> i.hard_math(3)
6
>>> i == C(1, 2)
True
>>> i != C(2, 1)
True
>>> attr.asdict(i)
{'y': 2, 'x': 1}
>>> C()
C(x=42, y=[])
>>> C2 = attr.make_class("C2", ["a", "b"])
>>> C2("foo", "bar")
C2(a='foo', b='bar')

这里的attrs有代表什么呐?
作为一个初学者会很疑惑这个attrs到底该如何去运用呐,又如何去分辨呐。我好像走进了死胡同。。。

查看全部 3 个回答

0

去看 getLinks() 的源码

link.attrs 是此函数返回的dict