import Pyro4 @Pyro4.expose class Calculator(object): def add(self, x, y): return x + y daemon = Pyro4.Daemon() uri = daemon.register(Calculator) print("Server URI:", uri) daemon.requestLoop()
import Pyro4 uri = input("Enter the URI of the Pyro4 server: ") calculator = Pyro4.Proxy(uri) x = int(input("Enter the first number: ")) y = int(input("Enter the second number: ")) result = calculator.add(x, y) print("The result is:", result)
import Pyro4 @Pyro4.expose class WebCrawler(object): def __init__(self, seed_urls): self.seed_urls = seed_urls self.pages_to_crawl = [url for url in self.seed_urls] self.crawled_pages = set() def get_page_to_crawl(self): if self.pages_to_crawl: return self.pages_to_crawl.pop() else: return None def add_crawled_page(self, page): self.crawled_pages.add(page) # add any links on this page to the pages to crawl daemon = Pyro4.Daemon() uri = daemon.register(WebCrawler) print("Server URI:", uri) daemon.requestLoop()
import Pyro4 import requests from bs4 import BeautifulSoup uri = input("Enter the URI of the Pyro4 server: ") web_crawler = Pyro4.Proxy(uri) while True: url = web_crawler.get_page_to_crawl() if url is None: break response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') links = soup.find_all('a') for link in links: web_crawler.add_crawled_page(link['href'])Overall, the `Pyro4` library is a powerful and flexible distributed object technology that allows you to easily distribute Python objects across multiple machines.