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中使用lambda高效操作列表的教程
Apr 24 Python
python生成随机密码或随机字符串的方法
Jul 03 Python
深入理解Python装饰器
Jul 27 Python
python 调用win32pai 操作cmd的方法
May 28 Python
python实现简单点对点(p2p)聊天
Sep 13 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
Mar 13 Python
Python实现的直接插入排序算法示例
Apr 29 Python
Python解析并读取PDF文件内容的方法
May 08 Python
libreoffice python 操作word及excel文档的方法
Jul 04 Python
python实现两个文件夹的同步
Aug 29 Python
tf.concat中axis的含义与使用详解
Feb 07 Python
wxpython自定义下拉列表框过程图解
Feb 14 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.MVC的模板标签系统(一)
2006/09/05 PHP
人大复印资料处理程序_补充篇
2006/10/09 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
关于初学PHP时的知识积累总结
2013/06/07 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
简单的js分页脚本
2009/05/21 Javascript
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
可以将word转成html的js代码
2010/04/11 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
将查询条件的input、select清空
2014/01/14 Javascript
js判断当前页面在移动设备还是在PC端中打开
2016/01/06 Javascript
Javascript获取background属性中url的值
2016/10/17 Javascript
vue语法之拼接字符串的示例代码
2017/10/25 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
微信小程序实现日历效果
2018/12/28 Javascript
vue实现购物车的监听
2020/04/20 Javascript
原生JS实现弹幕效果的简单操作指南
2020/11/10 Javascript
[01:03:31]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第二局
2016/02/26 DOTA
Python类的动态修改的实例方法
2017/03/24 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
Python实现base64编码的图片保存到本地功能示例
2018/06/22 Python
HTML的form表单和django的form表单
2019/07/25 Python
python3调用windows dos命令的例子
2019/08/14 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
2021/03/02 Python
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
有机婴儿毛毯和衣服:Monica + Andy
2020/03/01 全球购物
2015年七一建党节慰问信
2015/03/23 职场文书
恰同学少年观后感
2015/06/08 职场文书
golang如何去除多余空白字符(含制表符)
2021/04/25 Golang
拙作再改《我的收音机情缘》
2022/04/05 无线电