为什么说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常见的格式化输出小结
Dec 15 Python
Python实现多并发访问网站功能示例
Jun 19 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
Apr 23 Python
python处理“
Jun 10 Python
选择python进行数据分析的理由和优势
Jun 25 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
Aug 23 Python
python dataframe NaN处理方式
Dec 26 Python
Mac PyCharm中的.gitignore 安装设置教程
Apr 16 Python
keras 多gpu并行运行案例
Jun 10 Python
Python Scrapy图片爬取原理及代码实例
Jun 12 Python
python 元组和列表的区别
Dec 30 Python
用Python提取PDF表格的方法
Apr 11 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
杏林同学录(二)
2006/10/09 PHP
PHP中对数据库操作的封装
2006/10/09 PHP
PHP6 mysql连接方式说明
2009/02/09 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
PHP多态代码实例
2015/06/26 PHP
PHP实现简单的新闻发布系统实例
2015/07/28 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
2017/02/07 PHP
很可爱的输入框
2008/08/03 Javascript
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
js控制frameSet示例
2013/09/10 Javascript
javascript简单实现表格行间隔显示颜色并高亮显示
2013/11/29 Javascript
JS冒泡事件的快速解决方法
2013/12/16 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
jQuery中队列queue()函数的实例教程
2016/05/03 Javascript
javascript中json基础知识详解
2017/01/19 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
详解javascript中的babel到底是什么
2018/06/21 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
实例解析Python中的__new__特殊方法
2016/06/02 Python
高效使用Python字典的清单
2018/04/04 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
Python3.5面向对象编程图文与实例详解
2019/04/24 Python
使用python实现离散时间傅里叶变换的方法
2019/09/02 Python
如何获得EntityManager
2014/02/09 面试题
前台文员岗位职责
2013/12/28 职场文书
《三袋麦子》教学反思
2014/03/02 职场文书
财务部绩效考核方案
2014/05/04 职场文书
大学生标准自荐书
2014/06/15 职场文书
飞越疯人院观后感
2015/06/09 职场文书
Go语言实现Snowflake雪花算法
2021/06/08 Golang