爬蟲框架

本文由慕課網相關視頻課程後所寫,目前還很簡陋,以後或許會更新。

import requests
import bs4.BeautifulSoup as BS

# url 管理器,其主要使用了迭代器
class url_manage:
    def __init__(self, root_url, pre_url=''):
        self.root_url = {root_url}   # 注意其類型爲元組
        self.pre_url = pre_url
        self.i = -1
    def __iter__(self):
        return iter(soelf.root_url)
    def __next__(self):
        self.i += 1
        if self.i < len(self.root_url):
            return list(self.root_url)[self.i]
        else:
            raise StopIteration
    # 返回下一元素
    next = __next__
    # 添加一個新的網址至url管理器
    def add(self, url):
        self.root_url = self.root_url | {url}

# html 分析器,提取需要的內容
# 目前這個類並無太大作用,跟一個偏函數作用差不多,只不過打包成類後方便打包別的功能
class html_parset:
    def __init__(self, text):
        self.text = text
    def find(label, attibute):
        return BS(self.text, "html.parser").find(label, attibute)
    def find_all(label, attibute):
        return BS(self.text, "html.parser").find_all(label, attibute)

# 將提取後的內容輸出,默認輸出至屏幕,指定文件地址可保存至本地文件 
def output(data, file=sys.stdout):
    if isinstance(data, list):
        for line in data:
            print(line, file=file)
    else:
        print(data, file=file)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章