为什么说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 相关文章推荐
以一段代码为实例快速入门Python2.7
Mar 31 Python
Python正则获取、过滤或者替换HTML标签的方法
Jan 28 Python
小白如何入门Python? 制作一个网站为例
Mar 06 Python
python如何让类支持比较运算
Mar 20 Python
Python 最大概率法进行汉语切分的方法
Dec 14 Python
Django处理多用户类型的方法介绍
May 18 Python
Python pandas自定义函数的使用方法示例
Nov 20 Python
Python通过2种方法输出带颜色字体
Mar 02 Python
python 日志模块 日志等级设置失效的解决方案
May 26 Python
Python中格式化字符串的四种实现
May 26 Python
Django如何在不停机的情况下创建索引
Aug 02 Python
Python实现老照片修复之上色小技巧
Oct 16 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结束标签的使用细节探讨及联想
2013/03/04 PHP
基于PHP文件操作的详解
2013/06/05 PHP
PHP中使用SimpleXML检查XML文件结构实例
2015/01/07 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
2019/04/15 PHP
jQuery chili图片远处放大插件
2009/11/30 Javascript
js判断选择时间不能小于当前时间的示例代码
2013/09/24 Javascript
Js操作树节点自动折叠展开的几种方法
2014/05/05 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
jquery if条件语句的写法
2016/05/19 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
2016/08/11 Javascript
JavaScript数据结构之二叉树的计数算法示例
2017/04/13 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
javascript+jQuery实现360开机时间显示效果
2017/11/03 jQuery
基于input动态模糊查询的实现方法
2017/12/12 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
Python中实现从目录中过滤出指定文件类型的文件
2015/02/02 Python
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
2018/04/28 Python
Python3.5局部变量与全局变量作用域实例分析
2019/04/30 Python
django序列化serializers过程解析
2019/12/14 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
架构师岗位职责
2013/11/18 职场文书
2014公司年终工作总结
2014/12/19 职场文书
保证书格式
2015/01/16 职场文书
百万英镑观后感
2015/06/09 职场文书
《山中访友》教学反思
2016/02/24 职场文书
一篇文章带你深入了解Mysql触发器
2021/08/02 MySQL