Python返回一个列表

时间:2017-01-07 18:49:41

标签: python-3.x selenium bs4

我正在使用bs4并遍历我需要的单个页面上的所有链接。然后我将这些链接存储在列表中。

这是我的代码:

Sub Show_Comment()
On Error Resume Next
    For Each ws In ActiveWorkbook.Sheets
        Set allCommentRng = ws.Cells.SpecialCells(xlCellTypeComments)
        For Each Rng In allCommentRng
            Rng.Comment.Visible = True
        Next
    Next
On Error GoTo 0
End Sub

我想在使用return时我可以使用不同方法的url?我希望能够使用我附加到网址列表的每个链接,在使用我不理解的类时,这是更好的方法吗?

2 个答案:

答案 0 :(得分:0)

由于这些是实例方法,因此您应该使用self来调用它们:

def use(self):
    urls = self.scrape1()

并且,您不必从scrape1()方法返回并且可以设置实例属性,例如:

class MyScraper():
    # ...

    def scrape1(self):
        html = self.browser.page_source
        soup = BeautifulSoup(html, 'html.parser')

        self.urls = [a['href'] for a in soup.select('a.watch-now')]

    def use(self):
        self.scrape1()

        # use self.urls
        print(self.urls)

并且,您也可以使用urls这种方式:

scraper = MyScraper()
scraper.scrape1()

print(scraper.urls)

答案 1 :(得分:0)

你可以让方法将urls返回到类的属性中。

self.urls = urls

然后你可以从其他方法中引用它。

任何有自我的东西。是您可以在整个班级中引用的属性。因此,您可以编写另一种方法(无需将其作为函数的参数提供),可以在函数中使用self.urls。