Python 爬虫篇-爬取web页面所有可用的链接实战演示,展示网页里所有可跳转的链接地址

December 09, 2023
测试
测试
测试
测试
3 分钟阅读

原理也很简单,html 链接都是在 a 元素里的,我们就是匹配出所有的 a 元素,当然 a 可以是空的链接,空的链接是 None,也可能是无效的链接。

我们通过 urllib 库的 request 来测试链接的有效性。 当链接无效的话会抛出异常,我们把异常捕获出来,并提示出来,没有异常就是有效的,我们直接显示出来就好了。

需要用到的技术: python+selenium python+selenium 基本环境搭建

urllib.request 这是 python 自带的,直接就可以使用。

# -*- coding: GBK -*-
from selenium import webdriver  
import urllib.request
from urllib.request import URLError

# 调用chrome浏览器并后台运行
option=webdriver.ChromeOptions()
option.add_argument('headless')
driver = webdriver.Chrome(chrome_options=option)

driver.get("http://www.tencent.com/")   # 要测试的页面
urls = driver.find_elements_by_xpath("//a")   # 匹配出所有a元素里的链接

print("当前页面的可用链接如下:")

for url in urls:
	u=url.get_attribute('href')
	if u == 'None':   # 很多的a元素没有链接,所有是None
		continue
	try:
		response=urllib.request.urlopen(url.get_attribute("href"))   # 可以通过urllib测试url地址是否能打开
	except:
		print('Error url:   ' + url.get_attribute('href'))   # 把测试不通过的url显示出来
	else:	
		print(url.get_attribute("href"))   # 测试通过的url展示出来

driver.close()

运行成功效果图:

在这里插入图片描述
在这里插入图片描述

继续阅读

更多来自我们博客的帖子

如何安装 BuddyPress
由 测试 December 17, 2023
经过差不多一年的开发,BuddyPress 这个基于 WordPress Mu 的 SNS 插件正式版终于发布了。BuddyPress...
阅读更多
Filter如何工作
由 测试 December 17, 2023
在 web.xml...
阅读更多
如何理解CGAffineTransform
由 测试 December 17, 2023
CGAffineTransform A structure for holding an affine transformation matrix. ...
阅读更多