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的Flask框架中实现简单的登录功能的教程
Apr 20 Python
利用Python实现颜色色值转换的小工具
Oct 27 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
Oct 29 Python
python flask 如何修改默认端口号的方法步骤
Jul 12 Python
对Django 中request.get和request.post的区别详解
Aug 12 Python
python程序 创建多线程过程详解
Sep 23 Python
python实现局域网内实时通信代码
Dec 22 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
May 11 Python
Keras设置以及获取权重的实现
Jun 19 Python
Python爬取股票信息,并可视化数据的示例
Sep 26 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
Nov 02 Python
Python数据可视化之绘制柱状图和条形图
May 25 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
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
2014/05/06 PHP
php计算程序运行时间的简单例子分享
2014/05/10 PHP
php利用cookies实现购物车的方法
2014/12/10 PHP
php实现有趣的人品测试程序实例
2015/06/08 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
js动态设置div的值下例子
2013/10/29 Javascript
JS随机调用指定函数的方法
2015/07/01 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
js HTML5上传示例代码完整版
2016/10/10 Javascript
jQuery实现一个简单的验证码功能
2017/06/26 jQuery
mui back 返回刷新页面的实例
2017/12/06 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
jQuery动态移除与增加onclick属性的方法详解
2018/06/07 jQuery
vuedraggable+element ui实现页面控件拖拽排序效果
2020/07/29 Javascript
微信小程序中的列表切换功能实例代码详解
2020/06/09 Javascript
python类定义的讲解
2013/11/01 Python
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
python装饰器使用实例详解
2019/12/14 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
python批量提取图片信息并保存的实现
2021/02/05 Python
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
localStorage的过期时间设置的方法详解
2018/11/26 HTML / CSS
AmazeUI 网格的实现示例
2020/08/13 HTML / CSS
Kent & Curwen:与大卫·贝克汉姆合作
2017/06/13 全球购物
心理健康课教学反思
2014/02/13 职场文书
企业管理毕业生求职信
2014/03/11 职场文书
咖啡店创业计划书
2014/08/15 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
贫困证明怎么写
2015/06/16 职场文书
标枪加油稿
2015/07/22 职场文书
python 中[0]*2与0*2的区别说明
2021/05/10 Python