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进阶教程之循环对象
Aug 30 Python
Python里disconnect UDP套接字的方法
Apr 23 Python
介绍Python中的__future__模块
Apr 27 Python
Python中的urllib模块使用详解
Jul 07 Python
Python进阶之尾递归的用法实例
Jan 31 Python
python selenium自动上传有赞单号的操作方法
Jul 05 Python
Django调用百度AI接口实现人脸注册登录代码实例
Apr 23 Python
Django微信小程序后台开发教程的实现
Jun 03 Python
python实现简易版学生成绩管理系统
Jun 22 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
Oct 15 Python
Python3.9.1中使用split()的处理方法(推荐)
Feb 07 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
Mar 03 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日期时间函数的高级应用技巧
2009/05/16 PHP
CI框架实现创建自定义类库的方法
2018/12/25 PHP
MooTools 1.2介绍
2009/09/14 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
JavaScript利用append添加元素报错的解决方法
2014/07/01 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
2015/03/18 Javascript
js实现的tab标签切换效果代码分享
2015/08/25 Javascript
JQuery中Ajax()的data参数类型实例分析
2015/12/15 Javascript
Jquery实现的简单轮播效果【附实例】
2016/04/19 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
jQuery 选择器(61种)整理总结
2016/09/26 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
微信小程序中button组件的边框设置的实例详解
2017/09/27 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
2018/05/23 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
python使用calendar输出指定年份全年日历的方法
2015/04/04 Python
Python正则表达式完全指南
2017/05/25 Python
分数霸榜! python助你微信跳一跳拿高分
2018/01/08 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
Spartoo芬兰:欧洲最大的网上鞋店
2016/08/28 全球购物
信息工程学院毕业生推荐信
2013/11/05 职场文书
出国导师推荐信
2014/01/16 职场文书
环保倡议书300字
2014/05/15 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
保险公司岗前培训工作总结
2015/10/24 职场文书
SpringRetry重试框架的具体使用
2021/07/25 Java/Android
关于Python使用turtle库画任意图的问题
2022/04/01 Python