Python爬虫获取页面所有URL链接过程详解


Posted in Python onJune 04, 2020

如何获取一个页面内所有URL链接?在Python中可以使用urllib对网页进行爬取,然后利用Beautiful Soup对爬取的页面进行解析,提取出所有的URL。

什么是Beautiful Soup?

Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。

Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。

BeautifulSoup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,如果我们不安装它,则 Python 会使用 Python默认的解析器,lxml 解析器更加强大,速度更快。

全部代码:

from bs4 import BeautifulSoup
import time,re,urllib2
t=time.time()
websiteurls={}
def scanpage(url):
 websiteurl=url
 t=time.time()
 n=0
 html=urllib2.urlopen(websiteurl).read()
 soup=BeautifulSoup(html)
 pageurls=[]
 Upageurls={}
 pageurls=soup.find_all("a",href=True)
 for links in pageurls:
  if websiteurl in links.get("href") and links.get("href") not in Upageurls and links.get("href") not in websiteurls:
   Upageurls[links.get("href")]=0
 for links in Upageurls.keys():
  try:
   urllib2.urlopen(links).getcode()
  except:
   print "connect failed"
  else:
   t2=time.time()
   Upageurls[links]=urllib2.urlopen(links).getcode()
   print n,
   print links,
   print Upageurls[links]
   t1=time.time()
   print t1-t2
  n+=1
 print ("total is "+repr(n)+" links")
 print time.time()-t
scanpage(http://news.163.com/)

利用BeautifulSoup还可以有针对性的获取网页链接:Python爬虫获取网页上的链接,通过beautifulsoup的findall()方法对匹配的标签进行查找。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python函数式编程指南(四):生成器详解
Jun 24 Python
机器学习python实战之决策树
Nov 01 Python
Python中eval带来的潜在风险代码分析
Dec 11 Python
PyCharm代码回滚,恢复历史版本的解决方法
Oct 22 Python
python 构造三维全零数组的方法
Nov 12 Python
numpy数组广播的机制
Jul 12 Python
python Django编写接口并用Jmeter测试的方法
Jul 31 Python
Python 图像对比度增强的几种方法(小结)
Sep 25 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
Jan 02 Python
Pycharm添加虚拟解释器报错问题解决方案
Oct 13 Python
python基于socket模拟实现ssh远程执行命令
Dec 05 Python
python实现无边框进度条的实例代码
Dec 30 Python
Python中的全局变量如何理解
Jun 04 #Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
Jun 04 #Python
Python urllib2运行过程原理解析
Jun 04 #Python
Python如何生成xml文件
Jun 04 #Python
基于python代码批量处理图片resize
Jun 04 #Python
Python脚本如何在bilibili中查找弹幕发送者
Jun 04 #Python
Python爬虫谷歌Chrome F12抓包过程原理解析
Jun 04 #Python
You might like
PHP 显示客户端IP与服务器IP的代码
2010/10/12 PHP
php获取网页标题和内容函数(不包含html标签)
2014/02/03 PHP
关于php中的json_encode()和json_decode()函数的一些说明
2016/11/20 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
jquery 学习之二 属性(类)
2010/11/25 Javascript
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
js 立即调用的函数表达式如何写
2014/01/12 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
多个js毫秒倒计时同时进行效果
2016/01/05 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
简单了解Backbone.js的Model模型以及View视图的源码
2016/02/14 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
2017/03/27 Javascript
vue axios 在页面切换时中断请求方法 ajax
2018/03/05 Javascript
NodeJS实现自定义流的方法
2018/08/01 NodeJs
vue prop属性传值与传引用示例
2019/11/13 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
jQuery冲突问题解决方法
2021/01/19 jQuery
vue穿梭框实现上下移动
2021/01/29 Vue.js
pycharm 使用心得(六)进行简单的数据库管理
2014/06/06 Python
Python实现GUI学生信息管理系统
2020/04/05 Python
15行Python代码带你轻松理解令牌桶算法
2018/03/21 Python
python爬虫实例详解
2018/06/19 Python
Python绘图Matplotlib之坐标轴及刻度总结
2019/06/28 Python
jupyter 实现notebook中显示完整的行和列
2020/04/09 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
英国高档时尚男装购物网站:MR PORTER
2016/08/09 全球购物
Chantelle仙黛尔内衣美国官网:法国第一品牌内衣
2018/07/26 全球购物
Kate Spade澳大利亚官方网站:美国设计师手袋品牌
2019/09/10 全球购物
实习会计求职自荐信范文
2014/03/10 职场文书
敬老院标语
2014/06/27 职场文书
贫困证明书范文
2015/06/16 职场文书
2015年小学生暑假总结
2015/07/13 职场文书
Python Pandas常用函数方法总结
2021/06/15 Python
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫