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 相关文章推荐
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
May 06 Python
浅析Python中将单词首字母大写的capitalize()方法
May 18 Python
python实现在字符串中查找子字符串的方法
Jul 11 Python
浅谈python类属性的访问、设置和删除方法
Jul 25 Python
Python爬取网页中的图片(搜狗图片)详解
Mar 23 Python
Python3实现的判断回文链表算法示例
Mar 08 Python
python导入坐标点的具体操作
May 10 Python
python和mysql交互操作实例详解【基于pymysql库】
Jun 04 Python
python 定时器每天就执行一次的实现代码
Aug 14 Python
python图形开发GUI库wxpython使用方法详解
Feb 14 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
May 07 Python
解决python3.x安装numpy成功但import出错的问题
Nov 17 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
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
基于php中使用excel的简单介绍
2013/08/02 PHP
php+js实现异步图片上传实例分享
2014/06/02 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
php递归实现无限分类的方法
2015/07/28 PHP
js 分栏效果实现代码
2009/08/29 Javascript
JQuery插件ajaxfileupload.js异步上传文件实例
2015/05/19 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
2016/09/21 Javascript
jquery网页日历显示控件calendar3.1使用详解
2016/11/24 Javascript
JS 循环li添加点击事件 (闭包的应用)
2016/12/10 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
javascript标准库(js的标准内置对象)总结
2018/05/26 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
2020/07/13 Javascript
python转换字符串为摩尔斯电码的方法
2015/07/06 Python
Python实现通讯录功能
2018/02/22 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
Django Rest framework之认证的实现代码
2018/12/17 Python
Django如何自定义model创建数据库索引的顺序
2019/06/20 Python
Python 保持登录状态进行接口测试的方法示例
2019/08/06 Python
python将音频进行变速的操作方法
2020/04/08 Python
使用OpenCV去除面积较小的连通域
2020/07/05 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
python pip如何手动安装二进制包
2020/09/30 Python
美国修容界大佬创建的个人美妆品牌:Kevyn Aucoin Beauty
2018/12/12 全球购物
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
创业计划书的内容步骤和要领
2014/01/04 职场文书
学期研究性学习个人的自我评价
2014/01/09 职场文书
优秀中学生事迹材料
2014/01/31 职场文书
《庐山的云雾》教学反思
2014/04/22 职场文书
ktv筹备计划书
2014/05/03 职场文书
中考学习决心书
2015/02/04 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书
公司承诺书格式范文
2015/04/28 职场文书
python 实现图与图之间的间距调整subplots_adjust
2021/05/21 Python