全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python获取当前页面内所有链接的四种方法对比分析

本文实例讲述了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小时内与您取得联系。