Rastreador de classe escrito em python gera erro de atributo

Depois de escrever algum código em python, fiquei com problemas profundos. Eu sou um novato ao escrever código seguindo o design do OOP em python. Os xpaths que usei no meu código são impecáveis. Estou me perdendo quando se trata de executar o método "crossing_links" na minha classe "info_grabber" através da instância da classe "page_crawler". Toda vez que executo meu código, recebo um erro "'o objeto page_crawler' não tem o atributo 'crossing_links'". Talvez a maneira como escrevi meu rastreador de classe não seja como deveria ser. No entanto, como passei algumas horas nisso, suponho que receba alguma sugestão sobre quais linhas devo corrigir para fazê-lo funcionar. Agradecemos antecipadamente por dar uma olhada nele:

from lxml import html
import requests

class page_crawler(object):

    main_link = "https://www.yellowpages.com/search?search_terms=pizza&geo_location_terms=San%20Francisco%2C%20CA"
    base_link = "https://www.yellowpages.com"

    def __init__(self):

        self.links = [self.main_link]


    def crawler(self):
        for link in self.links:
            self.get_link(link)

    def get_link(self, link):

        print("Running page "+ link)
        page = requests.get(link)
        tree = html.fromstring(page.text)
        item_links = tree.xpath('//h2[@class="n"]/a[@class="business-name"][not(@itemprop="name")]/@href')
        for item_link in item_links:
            return self.base_link + item_link

        links = tree.xpath('//div[@class="pagination"]//li/a/@href')
        for url in links:
            if not self.base_link + url in self.links:
                self.links += [self.base_link + url]



class Info_grabber(page_crawler):

    def __init__(self, plinks):
        page_crawler.__init__(self)
        self.plinks = [plinks]

    def passing_links(self):
        for nlink in self.plinks:
            print(nlink)
            self.crawling_deep(nlink)

    def crawling_deep(self, uurl):

        page = requests.get(uurl)
        tree = html.fromstring(page.text)

        name = tree.findtext('.//div[@class="sales-info"]/h1')
        phone = tree.findtext('.//p[@class="phone"]')
        try:
            email = tree.xpath('//div[@class="business-card-footer"]/a[@class="email-business"]/@href')[0]
        except IndexError:
            email=""

        print(name, phone, email)


if __name__ == '__main__':

    crawl = Info_grabber(page_crawler)
    crawl.crawler()
    crawl.passing_links()

Agora, após a execução, recebo um novo erro "raise MissingSchema (error)" quando atinge a linha "self.crawling_deep (nlink)"

questionAnswers(2)

yourAnswerToTheQuestion