我正在制作python链接验证程序,这样我就可以废弃给定url中的所有链接并进行验证。
我试图在for循环中使用re-module,结果发现它是无效语法。
但我真的想不出其他方法可以把所有的链接都拔出来检查每一个。。所以我需要帮助。
代码如下:
import requests, bs4,webbrowser, re
from selenium import webdriver
url = str(input())
res = requests.get(url)
try:
res.raise_for_status()
except Exception as err:
print('There was a probelm with the first url: %s' % (err))
soup = bs4.BeautifulSoup(res.text, "html.parser")
linkElems = soup.select('a')
hrefRegex = re.compile(r'^"http(s)?://.*?"')
mo = hrefRegex.search(linkElems)
for i in range (len(linkElems[i])
mo = hrefRegex.search(linkElems[i])
res = requests.get(mo.group())
if res.status_code != requests.codes.ok:
print('%s is broken link. Response: 404 "Not Found"' % (mo.group()))
它说“mo”部分有无效语法,所以我甚至不能测试它。。。:(
验证意味着要确保链接没有断开,这意味着它们是有效的url,这样我们就不会从它们那里得到404条“找不到”的消息。
您可以使用regex获取URL,例如:
urls
将为您提供一个url列表。在从这里,您可以通过执行以下操作来验证链接是否未断开:
^{pr2}$相关问题 更多 >
编程相关推荐