Crawler code

This commit is contained in:
Igor Volochay
2024-01-11 09:16:05 +03:00
committed by GitHub
parent 0270086cc0
commit 17dd333d87
+38
View File
@@ -0,0 +1,38 @@
from requests import get
from bs4 import BeautifulSoup
from urllib.parse import urlparse
def get_all_links(url, deph, deph_counter=0):
all_links = {url}
if deph_counter < deph:
try:
req = get(url)
soup = BeautifulSoup(req.text, 'html.parser')
except:
return
for link in soup.find_all('a'):
link = link.get('href')
try:
if link:
if "http" in link:
all_links = all_links.union(get_all_links(link, deph, deph_counter + 1))
elif link == "/":
continue
else:
url = urlparse(url).scheme + "://" + urlparse(url).netloc
all_links = all_links.union(get_all_links(url + link, deph, deph_counter + 1))
except:
print(link)
return all_links
if __name__ == '__main__':
start_url = "https://habr.com/ru/articles/669766/"
links = get_all_links(start_url, 1)
print(len(links))
print(*list(links)[-5:], sep="\n")