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的Django框架上部署ORM库的教程
Apr 20 Python
win系统下为Python3.5安装flask-mongoengine 库
Dec 20 Python
Python创建xml文件示例
Mar 22 Python
python算法演练_One Rule 算法(详解)
May 17 Python
Python使用win32com实现的模拟浏览器功能示例
Jul 13 Python
分享一个简单的python读写文件脚本
Nov 25 Python
python elasticsearch环境搭建详解
Sep 02 Python
pytorch方法测试——激活函数(ReLU)详解
Jan 15 Python
Pytorch转tflite方式
May 25 Python
Python学习之os模块及用法
Jun 03 Python
基于tensorflow权重文件的解读
May 26 Python
使用python生成大量数据写入es数据库并查询操作(2)
Sep 23 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模板技术[转]
2007/01/04 PHP
php命令行模式代码实例详解
2021/02/26 PHP
一段好玩的JavaScript代码
2006/12/01 Javascript
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
javascript简单实现表格行间隔显示颜色并高亮显示
2013/11/29 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
2013/12/12 Javascript
javascript 常见功能汇总
2015/06/11 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
JS获取一个未知DIV高度的方法
2016/08/09 Javascript
Vue前端开发规范整理(推荐)
2018/04/23 Javascript
jquery获取元素到屏幕四周可视距离的方法
2018/09/05 jQuery
JS学习笔记之闭包小案例分析
2019/05/29 Javascript
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
python超简单解决约瑟夫环问题
2015/05/12 Python
Python环境下安装使用异步任务队列包Celery的基础教程
2016/05/07 Python
python sys.argv[]用法实例详解
2018/05/25 Python
对python pandas读取剪贴板内容的方法详解
2019/01/24 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
基于matplotlib中ion()和ioff()的使用详解
2020/06/16 Python
Python中Selenium库使用教程详解
2020/07/23 Python
CSS3 完美实现圆角效果
2009/07/13 HTML / CSS
松下电器美国官方商店:Panasonic美国
2016/10/14 全球购物
英国女士家居服网站:hush
2017/08/09 全球购物
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
公司建议书怎么写
2014/05/15 职场文书
员工团队活动方案
2014/08/28 职场文书
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
村主任“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
工作服管理制度范本
2015/08/06 职场文书
2016年圣诞节寄语(一句话)
2015/12/07 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
使用springMVC所需要的pom配置
2021/09/15 Java/Android