как составить список уникальных URL-адресов с данного домена - PullRequest
0 голосов
/ 05 апреля 2019

Я написал код для извлечения всех URL-адресов с данного сайта, но проблема в том, что некоторые URL-адреса повторяются, и я хочу получить список с уникальными URL-адресами.

from bs4 import BeautifulSoup
from termcolor import colored
import re, os

import requests

url = 'http://example.com'
ext = 'html'
count=0
countfiles=0
files=[]
def ulist(x):
  return list(dict.fromkeys(x))



def listFD(filename, ext=''):
  print filename
  print url
  if filename == url:
      page = requests.get(url).text
  else:
      page = requests.get(url + filename).text

  soup = BeautifulSoup(page, 'html.parser')
  return ['/' + node.get('href') for node in soup.find_all('a') if node.get('href').endswith(ext)]



for file in ulist(listFD(url, ext)):
   for unfile in ulist(listFD(file, ext)):
    print unfile

Ответы [ 3 ]

2 голосов
/ 05 апреля 2019

Вы можете действовать ниже:

urls = list(set(urls))
1 голос
/ 05 апреля 2019

Просто оберните ваш список во встроенную функциональность Python set :

urls = ['www.google.com', 'www.google.com', 'www.facebook.com']
unique_urls = list(set(urls))
print(unique_urls)  # prints >> ['www.facebook.com', 'www.google.com']
0 голосов
/ 05 апреля 2019

Получив список URL, вы можете использовать set для получения уникальных элементов и понимания списка:

unique_urls = [url for url in set(urls)]
...