Python使用四种方法实现获取当前页面内所有链接的对比分析
这篇文章主要介绍了python获取当前页面内所有链接的方法,结合实例形式对比分析了python常用的四种获取页面链接的方法,并附带了iframe框架内链接的获取方法,需要的朋友可以参考下
本文实例讲述了Python获取当前页面内所有链接的四种方法。分享给大家供大家参考,具体如下:
'''得到当前页面所有连接'''import requestsimport refrom bs4 import BeautifulSoupfrom lxml import etreefrom selenium import webdriverurl = 'http://www.testweb.com'r = requests.get(url)r.encoding = 'gb2312'# 利用 re (太黄太暴力!)matchs = re.findall(r"(?<p><strong>注意:若页面中含有 iframe,则 iframe 内所包含页面的所有标签都无法用以上四种方法获得!!!此时则要:</strong></p><p class="jb51code"><br></p><pre class="brush:py;"># 再打开所有iframe查找全部的a标签for iframe in soup.find_all('iframe'): url_ifr = iframe['src'] # 取得当前iframe的src属性值 rr = requests.get(url_ifr) rr.encoding = 'gb2312' soup_ifr = BeautifulSoup(rr.text,'lxml') for a in soup_ifr.find_all('a'): link = a['href'] m = re.match(r'http://.*?(?=/)',link) #print(link) if m: all_urls.add(m.group(0))