为什么说python适合写爬虫


Posted in Python onJune 11, 2020

抓取网页本身的接口

相比与其他静态编程语言,如java,c#,C++,python抓取网页文档的接口更简洁;相比其他动态脚本语言,如perl,shell,python的urllib2包提供了较为完整的访问网页文档的API。(当然ruby也是很好的选择)

此外,抓取网页有时候需要模拟浏览器的行为,很多网站对于生硬的爬虫抓取都是封杀的。这是我们需要模拟user agent的行为构造合适的请求,譬如模拟用户登陆、模拟session/cookie的存储和设置。在python里都有非常优秀的第三方包帮你搞定,如Requests,mechanize

网页抓取后的处理

抓取的网页通常需要处理,比如过滤html标签,提取文本等。python的beautifulsoap提供了简洁的文档处理功能,能用极短的代码完成大部分文档的处理。

其实以上功能很多语言和工具都能做,但是用python能够干得最快,最干净。Life is short, u need python.

冲最后一句‘Lifeisshort,uneedpython',立马在当当上买了本python的书!以前就膜拜过python大牛,一直想学都扯于各种借口迟迟没有开始。。

py用在linux上很强大,语言挺简单的。

  • NO.1 快速开发(唯一能和python比开发效率的语言只有rudy)语言简洁,没那么多技巧,所以读起来很清楚容易。
  • NO.2跨平台(由于python的开源,他比java更能体现"一次编写到处运行"
  • NO.3解释性( 无须编译,直接运行/调试代码)
  • NO.4构架选择太多(GUI构架方面 主要的就有 wxPython, tkInter, PyGtk, PyQt 。

知识点扩展:

用python写爬虫相关的实例:

# coding:utf-8
import urllib

domain = 'http://www.liaoxuefeng.com'   #廖雪峰的域名
path = r'C:\Users\cyhhao2013\Desktop\temp\\' #html要保存的路径

# 一个html的头文件
input = open(r'C:\Users\cyhhao2013\Desktop\0.html', 'r')
head = input.read()

# 打开python教程主界面
f = urllib.urlopen("http://www.需要爬取的网址.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000")
home = f.read()
f.close()

# 替换所有空格回车(这样容易好获取url)
geturl = home.replace("\n", "")
geturl = geturl.replace(" ", "")

# 得到包含url的字符串
list = geturl.split(r'em;"><ahref="')[1:]

# 强迫症犯了,一定要把第一个页面也加进去才完美
list.insert(0, '/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000">')

# 开始遍历url List
for li in list:
 url = li.split(r'">')[0]
 url = domain + url    #拼凑url
 print url
 f = urllib.urlopen(url)
 html = f.read()

 # 获得title为了写文件名
 title = html.split("<title>")[1]
 title = title.split(" - 廖雪峰的官方网站</title>")[0]

 # 要转一下码,不然加到路径里就悲剧了
 title = title.decode('utf-8').replace("/", " ")

 # 截取正文
 html = html.split(r'<!-- block main -->')[1]
 html = html.split(r'<h4>您的支持是作者写作最大的动力!</h4>')[0]
 html = html.replace(r'src="', 'src="' + domain)

 # 加上头和尾组成完整的html
 html = head + html+"</body></html>"

 # 输出文件
 output = open(path + "%d" % list.index(li) + title + '.html', 'w')
 output.write(html)
 output.close()

到此这篇关于为什么说python适合写爬虫的文章就介绍到这了,更多相关为什么用python写爬虫内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python操作json数据的一个简单例子
Apr 17 Python
Python编程中使用Pillow来处理图像的基础教程
Nov 20 Python
python 函数传参之传值还是传引用的分析
Sep 07 Python
python re模块的高级用法详解
Jun 06 Python
如何在python字符串中输入纯粹的{}
Aug 22 Python
Python模块汇总(常用第三方库)
Oct 07 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
Dec 10 Python
Keras使用tensorboard显示训练过程的实例
Feb 15 Python
python实现逢七拍腿小游戏的思路详解
May 26 Python
python request 模块详细介绍
Nov 10 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
Jan 28 Python
实例详解Python的进程,线程和协程
Mar 13 Python
python新手学习使用库
Jun 11 #Python
keras实现多种分类网络的方式
Jun 11 #Python
python的help函数如何使用
Jun 11 #Python
新手学python应该下哪个版本
Jun 11 #Python
python开发前景如何
Jun 11 #Python
python编写softmax函数、交叉熵函数实例
Jun 11 #Python
python能开发游戏吗
Jun 11 #Python
You might like
php采用ajax数据提交post与post常见方法总结
2014/11/10 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
PHP基于回溯算法解决n皇后问题的方法示例
2017/11/07 PHP
kmock javascript 单元测试代码
2011/02/06 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
2013/04/02 Javascript
关于query Javascript CSS Selector engine
2013/04/12 Javascript
JavaScript中的Math 使用介绍
2014/04/21 Javascript
使用jquery prev()方法找到同级的前一个元素
2014/07/11 Javascript
jQuery子属性过滤选择器用法分析
2015/02/10 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
AngularJS ng-repeat数组有重复值的解决方法
2016/10/23 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
canvas实现图像截取功能
2017/02/06 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
浅谈原生JS中的延迟脚本和异步脚本
2017/07/12 Javascript
详解vuex状态管理模式
2018/11/01 Javascript
微信小程序实现文字无限轮播效果
2018/12/28 Javascript
微信小程序开发的基本流程步骤
2019/01/31 Javascript
NodeJS读取分析Nginx错误日志的方法
2019/05/14 NodeJs
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
2019/11/01 Javascript
python实现计数排序与桶排序实例代码
2019/03/28 Python
python实现微信定时每天和女友发送消息
2019/04/29 Python
python操作gitlab API过程解析
2019/12/27 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
计算机专业自我鉴定
2013/10/15 职场文书
企业文化演讲稿
2014/05/20 职场文书
小学生常见病防治方案
2014/06/06 职场文书
村安全生产责任书
2014/08/25 职场文书
教师工作证明范本
2015/06/12 职场文书
Android 中的类文件和类加载器详情
2022/06/05 Java/Android
js 实现Material UI点击涟漪效果示例
2022/09/23 Javascript