Hacer mi propio rastreador web en python que muestra la idea principal del rango de la página

Estoy intentando hacer un rastreador web que muestre una idea básica del rango de la página. Y el código para mí me parece bien, pero me devuelve los errores ex

`Traceback (most recent call last): File "C:/Users/Janis/Desktop/WebCrawler/Web_crawler.py", line 89, in  webpages() File "C:/Users/Janis/Desktop/WebCrawler/Web_crawler.py", line 17, in webpages get_single_item_data(href) File "C:/Users/Janis/Desktop/WebCrawler/Web_crawler.py", line 23, in get_single_item_data source_code = requests.get(item_url) File "C:\Python34\lib\site-packages\requests\api.py", line 65, in get return request('get', url, **kwargs) File "C:\Python34\lib\site-packages\requests\api.py", line 49, in request response = session.request(method=method, url=url, **kwargs) File "C:\Python34\lib\site-packages\requests\sessions.py", line 447, in request prep = self.prepare_request(req) File "C:\Python34\lib\site-packages\requests\sessions.py", line 378, in prepare_request hooks=merge_hooks(request.hooks, self.hooks), File "C:\Python34\lib\site-packages\requests\models.py", line 303, in prepare self.prepare_url(url, params) File "C:\Python34\lib\site-packages\requests\models.py", line 360, in prepare_url "Perhaps you meant http://{0}?".format(url)) requests.exceptions.MissingSchema: Invalid URL '//www.hm.com/lv/logout': No schema supplied. Perhaps you meant http:////www.hm.com/lv/logout?` 

y la última fila de código que Python me devuelve después de ejecutarlo es:

 //www.hm.com/lv/logout 

Tal vez el problema sea con dos // pero estoy seguro de que, de todos modos, cuando bash abrir otras páginas web, por ejemplo, http://en.wikipedia.org/wiki/Wiki, no me devuelve None ni los mismos errores.

  import requests from bs4 import BeautifulSoup from collections import defaultdict from operator import itemgetter all_links = defaultdict(int) def webpages(): url = 'http://www.hm.com/lv/' source_code = requests.get(url) text = source_code.text soup = BeautifulSoup(text) for link in soup.findAll ('a'): href = link.get('href') print(href) get_single_item_data(href) return all_links def get_single_item_data(item_url): #if not item_url.startswith('http'): #item_url = 'http' + item_url source_code = requests.get(item_url) text = source_code.text soup = BeautifulSoup(text) for link in soup.findAll('a'): href = link.get('href') if href and href.startswith('http://www.'): if href: all_links[href] += 1 print(href) def sort_algorithm(list): for index in range(1,len(list)): value= list[index] i = index - 1 while i>=0: if value = 1: words.append(vieni[h]) words.append("hundred") if int(num_str) % 100: words.append("and") if t > 1: words.append(desmiti[t]) if u >= 1: words.append(vieni[u]) elif t == 1: if u >= 1: words.append(padsmiti[u]) else: words.append(desmiti[t]) else: if u >= 1: words.append(vieni[u]) return " ".join(words) webpages() for k, v in sorted(webpages().items(),key=itemgetter(1),reverse=True): print(k, num_to_words(v)) 

Los enlaces que provienen del bucle de páginas web pueden comenzar con dos barras inclinadas. Esto significa que este enlace usa el esquema actual. Por ejemplo, abra https://en.wikipedia.org/wiki/Wiki el enlace “//en.wikipedia.org/login” será ” https://en.wikipedia.org/login “. abrir http://en.wikipedia.org/wiki/Wiki será http://en.wikipedia.org/login .

Una mejor manera de abrir la url en una etiqueta html “a” es usar la función urlparse.urljoin. Se une a la url de destino y la actual. Independientemente de la ruta absoluta / relativa.

Espero que esto te pueda ayudar.