Python实现抓取页面上链接的简单爬虫分享


Posted in Python onJanuary 21, 2015

除了C/C++以外,我也接触过不少流行的语言,PHP、java、javascript、python,其中python可以说是操作起来最方便,缺点最少的语言了。

前几天想写爬虫,后来跟朋友商量了一下,决定过几天再一起写。爬虫里重要的一部分是抓取页面中的链接,我在这里简单的实现一下。

首先我们需要用到一个开源的模块,requests。这不是python自带的模块,需要从网上下载、解压与安装:

$ curl -OL https://github.com/kennethreitz/requests/zipball/master

$ python setup.py install

windows用户直接点击下载。解压后再本地使用命令python setup.py install安装即可。 https://github.com/kennethreitz/requests/zipball/master

这个模块的文档我也正在慢慢翻译,翻译完了就给大家传上来(英文版先发在附件里)。就像它的说明里面说的那样,built for human beings,为人类而设计。使用它很方便,自己看文档。最简单的,requests.get()就是发送一个get请求。

代码如下:

# coding:utf-8

import re

import requests
# 获取网页内容

r = requests.get('http://www.163.com')

data = r.text
# 利用正则查找所有连接

link_list =re.findall(r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')" ,data)

for url in link_list:

    print url

首先import进re和requests模块,re模块是使用正则表达式的模块。

data = requests.get('http://www.163.com'),向网易首页提交get请求,得到一个requests对象r,r.text就是获得的网页源代码,保存在字符串data中。

再利用正则查找data中所有的链接,我的正则写的比较粗糙,直接把href=""或href=''之间的信息获取到,这就是我们要的链接信息。

re.findall返回的是一个列表,用for循环遍历列表并输出:

Python实现抓取页面上链接的简单爬虫分享

这是我获取到的所有连接的一部分。

上面是获取网站里所有链接的一个简单的实现,没有处理任何异常,没有考虑到超链接的类型,代码仅供参考。requests模块文档见附件。

Python 相关文章推荐
跟老齐学Python之有点简约的元组
Sep 24 Python
使用python编写监听端
Apr 12 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
May 31 Python
浅谈pandas用groupby后对层级索引levels的处理方法
Nov 06 Python
Mac下Anaconda的安装和使用教程
Nov 29 Python
python解析json串与正则匹配对比方法
Dec 20 Python
用python求一个数组的和与平均值的实现方法
Jun 29 Python
python实时检测键盘输入函数的示例
Jul 17 Python
Python turtle库的画笔控制说明
Jun 28 Python
基于django和dropzone.js实现上传文件
Nov 24 Python
Python 制作自动化翻译工具
Apr 25 Python
实例讲解Python中sys.argv[]的用法
Jun 03 Python
Python中多线程及程序锁浅析
Jan 21 #Python
Python实现的多线程端口扫描工具分享
Jan 21 #Python
Python中的pprint折腾记
Jan 21 #Python
通过C++学习Python
Jan 20 #Python
python入门之语句(if语句、while语句、for语句)
Jan 19 #Python
Python实现删除Android工程中的冗余字符串
Jan 19 #Python
Python中字典和JSON互转操作实例
Jan 19 #Python
You might like
javascript中的有名函数和无名函数
2007/10/17 Javascript
javascript 兼容鼠标滚轮事件
2009/04/07 Javascript
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
用户代理字符串userAgent可实现的四个识别
2015/09/20 Javascript
JS中使用FormData上传文件、图片的方法
2016/08/07 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
node.js express捕获全局异常的三种方法实例分析
2019/12/27 Javascript
js在HTML的三种引用方式详解
2020/08/29 Javascript
python Django批量导入不重复数据
2016/03/25 Python
Python 基础之字符串string详解及实例
2017/04/01 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
分分钟入门python语言
2018/03/20 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
详解python爬虫系列之初识爬虫
2019/04/06 Python
值得收藏的10道python 面试题
2019/04/15 Python
Python SELENIUM上传文件或图片实现过程
2019/10/28 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
2020/02/23 Python
python爬虫爬取图片的简单代码
2021/01/18 Python
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
2013年保送生自荐信格式
2013/11/20 职场文书
学前教育毕业生自荐信范文
2013/12/24 职场文书
高中毕业生自我鉴定例文
2013/12/29 职场文书
会计专业个人求职信范文
2014/01/08 职场文书
大学军训感言
2014/01/10 职场文书
户籍证明的格式
2014/01/13 职场文书
爱岗敬业演讲稿范文
2014/01/14 职场文书
法学个人求职信范文
2014/01/27 职场文书
挂牌仪式策划方案
2014/05/18 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
高考作弊检讨书1500字
2015/02/16 职场文书
学习党章心得体会2016
2016/01/15 职场文书
Python中with上下文管理协议的作用及用法
2022/03/18 Python
SQL使用复合索引实现数据库查询的优化
2022/05/25 SQL Server