为什么说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实现优先级队列结构的方法详解
Jun 02 Python
python matplotlib画图实例代码分享
Dec 27 Python
python爬虫爬取快手视频多线程下载功能
Feb 28 Python
python模块smtplib实现纯文本邮件发送功能
May 22 Python
Python Django的安装配置教程图文详解
Jul 17 Python
解决Atom安装Hydrogen无法运行python3的问题
Aug 28 Python
python ftplib模块使用代码实例
Dec 31 Python
Python 3.8 新功能大揭秘【新手必学】
Feb 05 Python
python 实现rolling和apply函数的向下取值操作
Jun 08 Python
Python字符串split及rsplit方法原理详解
Jun 29 Python
神经网络训练采用gpu设置的方式
Mar 03 Python
python基于tkinter实现gif录屏功能
May 19 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代码
2006/12/06 PHP
php zend解密软件绿色版测试可用
2008/04/14 PHP
PHP-MySQL教程归纳总结
2008/06/07 PHP
GBK的页面输出JSON格式的php函数
2010/02/16 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
php实现微信公众号主动推送消息
2015/12/31 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
2016/07/06 PHP
php事务回滚简单实现方法示例
2017/03/28 PHP
PHP 文件上传限制问题
2019/09/01 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
jQuery length 和 size()区别总结
2018/04/26 jQuery
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
总结javascript三元运算符知识点
2018/09/28 Javascript
JS实现网站楼层导航效果代码实例
2020/06/16 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
python类型强制转换long to int的代码
2013/02/10 Python
深入理解NumPy简明教程---数组3(组合)
2016/12/17 Python
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
python 接口返回的json字符串实例
2018/03/27 Python
浅谈Python的list中的选取范围
2018/11/12 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
详解Python 中sys.stdin.readline()的用法
2019/09/12 Python
简单了解python数组的基本操作
2019/11/26 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
CSS3实现彩色进度条动画的示例
2020/10/29 HTML / CSS
《云雀的心愿》教学反思
2014/02/25 职场文书
大学毕业感言200字
2014/03/09 职场文书
自考毕业自我鉴定
2014/03/18 职场文书
护士找工作求职信
2014/07/02 职场文书
总经理年会致辞
2015/07/29 职场文书
.Net Core导入千万级数据至Mysql的步骤
2021/05/24 MySQL
Python实现视频中添加音频工具详解
2021/12/06 Python