python - 使我的脚本打印结果时出现问题

标签 python python-3.x class web-scraping

我使用类在 python 中创建了一个 scipt 来从网页收集问题链接。我用过__str__()我的脚本中的方法来打印结果。但是,当我尝试打印它时,我得到 None 作为输出。

这里的主要目的是制作__str__()此方法适用于我的以下脚本。

我哪里出了问题,该如何解决?

import requests
from urllib.parse import urljoin
from bs4 import BeautifulSoup

URL = "https://stackoverflow.com/questions/tagged/web-scraping"

class DataSourcer:

    def __init__(self,link):
        self.link = link
        self.datalist = []

    def fetch(self):
        res = requests.get(self.link)
        soup = BeautifulSoup(res.text,"lxml")
        for ilink in soup.select(".summary .question-hyperlink"):
            self.datalist.append(urljoin(self.link,ilink.get("href")))

    def __str__(self):
        return self.datalist

if __name__ == '__main__':    
    crawler = DataSourcer(URL)
    print(crawler.fetch())

最佳答案

你的方法很好,看来你打印的方式不正确。您正在打印 crawler.fetch() ,它返回 None

import requests
from urllib.parse import urljoin
from bs4 import BeautifulSoup

URL = "https://stackoverflow.com/questions/tagged/web-scraping"

class DataSourcer:

    def __init__(self,link):
        self.link = link
        self.datalist = []

    def fetch(self):
        res = requests.get(self.link)
        soup = BeautifulSoup(res.text,"lxml")
        for ilink in soup.select(".summary .question-hyperlink"):
            self.datalist.append(urljoin(self.link,ilink.get("href")))

    def __str__(self):
        return self.datalist

if __name__ == '__main__':    
    crawler = DataSourcer(URL)
    crawler.fetch()
    print(crawler.__str__())

关于python - 使我的脚本打印结果时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53671730/

相关文章:

python - 如何为 for 循环中使用的 python 函数建立索引?

python - 在 django 模型中使用一个类作为另一个类的一部分

python - Pandas df.loc 比较浮点条件从不工作

python-3.x - 如何将 celery 任务添加到队列顶部?

class - typescript 导入类

python - 在 Python 中序列化 float 安全吗?

python - 使用 pytest 用于 Python 项目的正确文件夹结构是什么?

python - 如何限制Python中的列表以显示每个唯一行的N条记录?

Xcode - 相同的类名,两个目标

java - Java 中的泛型类