我需要解析任何网站的链接(我在开始解析之前设置了一个链接)。链接应该是内部的:也就是说,不要超出当前网站(外部链接应该被忽略)。我写了一部分程序代码,但是我得到了一些不必要的链接,例如:“#”、“电话:+7845225-17-72”等等。如何获取内部链接,例如:'mysite.ru/交付'或'/delivery'(在最后一个变体中,只显示部分地址)?在
我的代码:
from urllib.parse import urlparse
from bs4 import BeautifulSoup, SoupStrainer
import requests
url = 'http://101-rosa.ru'
r = requests.get(url)
soup = BeautifulSoup(r.content, 'html.parser', parse_only=SoupStrainer('a'))
urls = [link['href'] for link in soup if link.get('href')]
for u in urls:
nu = u.contents(0)
r = requests.get(nu)
soup2 = BeautifulSoup(r.content, 'html.parser', parse_only=SoupStrainer('a'))
url = [link['href'] for link in soup2 if link.get('href')]
nu = urlparse(url)
if nu.netloc == 'www.http://101-rosa.ru:80' and urls.count(url) == 0:
urls.append(url)
print(len(urls))
print(urls)
目前没有回答
相关问题 更多 >
编程相关推荐