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中的__init__()方法
May 02 Python
python中星号变量的几种特殊用法
Sep 07 Python
Python入门_浅谈数据结构的4种基本类型
May 16 Python
Python实现按学生年龄排序的实际问题详解
Aug 29 Python
基于Python3.6+splinter实现自动抢火车票
Sep 25 Python
python提取照片坐标信息的实例代码
Aug 14 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
Aug 20 Python
python 函数中的参数类型
Feb 11 Python
打印tensorflow恢复模型中所有变量与操作节点方式
May 26 Python
Python自动发送和收取邮件的方法
Aug 12 Python
基于python判断字符串括号是否闭合{}[]()
Sep 21 Python
python基础之函数的定义和调用
Oct 24 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环形链表实现方法示例
2017/09/15 PHP
如何用javascript控制上传文件的大小
2006/10/26 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
jQuery UI插件自定义confirm确认框的方法
2015/03/20 Javascript
js 实现数值的千分位及保存小数方法(推荐)
2016/08/01 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
vue仿element实现分页器效果
2018/09/13 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
微信小程序制作扭蛋机代码实例
2019/09/24 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
解决vue的touchStart事件及click事件冲突问题
2020/07/21 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
[58:32]EG vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
简单的python协同过滤程序实例代码
2018/01/31 Python
Python 加密与解密小结
2018/12/06 Python
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
IFCHIC台湾:欧美国际设计师品牌
2019/05/18 全球购物
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
个人求职简历的自我评价
2013/10/19 职场文书
模具专业推荐信
2013/10/30 职场文书
优秀研究生自我鉴定
2013/12/04 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
个人贷款承诺书
2014/03/28 职场文书
幼儿园安全责任书范本
2014/07/24 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
停电放假通知
2015/04/14 职场文书
Golang ort 中的sortInts 方法
2022/04/24 Golang
数据设计之权限的实现
2022/08/05 MySQL
Python中tqdm的使用和例子
2022/09/23 Python