Python 网站死链检查工具:完整代码示例
以下是一个简单的 Python 程序,可以检查整个网站中的死链。
import requests
from bs4 import BeautifulSoup
from urllib.parse import urlparse, urljoin
# 获取页面中的所有链接
def get_links(url):
try:
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
links = [link.get('href') for link in soup.find_all('a')]
return links
except:
return []
# 检查链接的有效性
def check_links(links, base_url):
for link in links:
if link:
if urlparse(link).scheme in ['http', 'https']:
url = link
else:
url = urljoin(base_url, link)
try:
response = requests.head(url)
if response.status_code == 200:
print(url + ' is valid')
else:
print(url + ' is invalid')
except:
print(url + ' is invalid')
# 主程序
if __name__ == '__main__':
base_url = 'https://example.com'
visited = set([base_url])
queue = [base_url]
while queue:
url = queue.pop(0)
links = get_links(url)
check_links(links, base_url)
for link in links:
if link:
if urlparse(link).scheme in ['http', 'https']:
url = link
else:
url = urljoin(base_url, link)
if url not in visited:
visited.add(url)
queue.append(url)
该程序使用了 requests 和 beautifulsoup4 库来获取页面中的所有链接,并使用 urllib 库中的 urlparse 和 urljoin 来解析和构建链接。程序使用队列和集合来遍历整个网站,并检查每个链接的有效性。如果链接有效,则输出'链接是有效的',否则输出'链接是无效的'。
使用步骤:
- 安装必要的库:
pip install requests beautifulsoup4 - 将
base_url替换为要检查的网站地址 - 运行程序
代码解释:
get_links(url)函数用于从页面中获取所有链接check_links(links, base_url)函数用于检查每个链接的有效性- 主程序使用队列和集合来遍历整个网站,并检查每个链接的有效性
原文地址: https://www.cveoy.top/t/topic/oYvf 著作权归作者所有。请勿转载和采集!