本文实例讲述了Python获取当前页面内所有链接的四种方法。分享给大家供大家参考,具体如下:
'''
得到当前页面所有连接
'''
import requests
import re
from bs4 import BeautifulSoup
from lxml import etree
from selenium import webdriver
url = 'http://www.testweb.com'
r = requests.get(url)
r.encoding = 'gb2312'
# 利用 re (太黄太暴力!)
matchs = re.findall(r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')" , r.text)
for link in matchs:
print(link)
print()
# 利用 BeautifulSoup4 (DOM树)
soup = BeautifulSoup(r.text,'lxml')
for a in soup.find_all('a'):
link = a['href']
print(link)
print()
# 利用 lxml.etree (XPath)
tree = etree.HTML(r.text)
for link in tree.xpath("//@href"):
print(link)
print()
# 利用selenium(要开浏览器!)
driver = webdriver.Firefox()
driver.get(url)
for link in driver.find_elements_by_tag_name("a"):
print(link.get_attribute("href"))
driver.close()
注意:若页面中含有 iframe,则 iframe 内所包含页面的所有标签都无法用以上四种方法获得!!!此时则要:
# 再打开所有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))
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools./regex/javascript
正则表达式在线生成工具:
http://tools./regex/create_reg
更多关于Python相关内容可查看本站专题:《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
# Python
# 获取
# 页面链接
# Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
# 对比Python中__getattr__和 __getattribute__获取属性的用法
# 浅谈Python中chr、unichr、ord字符函数之间的对比
# 举例讲解Python中字典的合并值相加与异或对比
# 横向对比分析Python解析XML的四种方式
# Python 多线程抓取图片效率对比
# 使用Python的PIL模块来进行图片对比
# Python与R语言的简要对比
# 正则表达式
# 四种
# 进阶
# 操作技巧
# 相关内容
# 数据结构
# 给大家
# 更多关于
# 所述
# 程序设计
# 使用技巧
# 再打
# 则要
# 再为
# 所包含
# 测试工具
# 页面内
# 讲述了
# 中含有
# testweb
相关文章:
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
如何制作一个表白网站视频,关于勇敢表白的小标题?
长沙做网站要多少钱,长沙国安网络怎么样?
建站之星伪静态规则如何正确配置?
,巨量百应是干嘛的?
文字头像制作网站推荐软件,醒图能自动配文字吗?
常州企业建站如何选择最佳模板?
b2c电商网站制作流程,b2c水平综合的电商平台?
,柠檬视频怎样兑换vip?
简单实现Android文件上传
C++如何编写函数模板?(泛型编程入门)
专业公司网站制作公司,用什么语言做企业网站比较好?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
北京网站制作网页,网站升级改版需要多久?
电商网站制作公司有哪些,1688网是什么意思?
nginx修改上传文件大小限制的方法
,交易猫的商品怎么发布到网站上去?
如何在IIS中新建站点并配置端口与IP地址?
宝塔面板如何快速创建新站点?
如何在阿里云虚拟服务器快速搭建网站?
如何快速使用云服务器搭建个人网站?
建站之星导航配置指南:自助建站与SEO优化全解析
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
javascript中对象的定义、使用以及对象和原型链操作小结
Android使用GridView实现日历的简单功能
深圳网站制作平台,深圳市做网站好的公司有哪些?
制作营销网站公司,淘特是干什么用的?
免费视频制作网站,更新又快又好的免费电影网站?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
如何在宝塔面板创建新站点?
如何正确选择百度移动适配建站域名?
小建面朝正北,A点实际方位是否存在偏差?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
高端建站三要素:定制模板、企业官网与响应式设计优化
如何基于云服务器快速搭建个人网站?
代购小票制作网站有哪些,购物小票的简要说明?
建站主机数据库如何配置才能提升网站性能?
如何批量查询域名的建站时间记录?
为什么Go需要go mod文件_Go go mod文件作用说明
高性能网站服务器配置指南:安全稳定与高效建站核心方案
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
如何基于PHP生成高效IDC网络公司建站源码?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
如何高效完成自助建站业务培训?
*请认真填写需求信息,我们会在24小时内与您取得联系。