为什么说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 代码优化详解
Oct 27 Python
python在windows和linux下获得本机本地ip地址方法小结
Mar 20 Python
python读取二进制mnist实例详解
May 31 Python
Django admin实现图书管理系统菜鸟级教程完整实例
Dec 12 Python
python3.x实现发送邮件功能
May 22 Python
解决django前后端分离csrf验证的问题
Feb 03 Python
Python、 Pycharm、Django安装详细教程(图文)
Apr 12 Python
PowerBI和Python关于数据分析的对比
Jul 11 Python
Python中turtle库的使用实例
Sep 09 Python
python GUI模拟实现计算器
Jun 22 Python
Python 解析简单的XML数据
Jul 24 Python
matplotlib画混淆矩阵与正确率曲线的实例代码
Jun 01 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
深入file_get_contents与curl函数的详解
2013/06/25 PHP
2014年10个最佳的PHP图像操作库
2014/07/14 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
2014/10/23 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
2016/11/14 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
js或css实现滚动广告的几种方案
2010/01/28 Javascript
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
jQuery 取值、赋值的基本方法整理
2014/03/31 Javascript
用js模拟struts2的多action调用示例
2014/05/19 Javascript
jQuery表格插件datatables用法总结
2014/09/05 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
2016/12/11 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
nodejs 使用 js 模块的方法实例详解
2018/12/04 NodeJs
在Vant的基础上实现添加表单验证框架的方法示例
2018/12/05 Javascript
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 jQuery
js+canvas实现两张图片合并成一张图片的方法
2019/11/01 Javascript
[01:52]DOTA2完美大师赛Vega战队趣味视频——kpii老师小课堂
2017/11/25 DOTA
Python中在脚本中引用其他文件函数的实现方法
2016/06/23 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
Python基于numpy模块实现回归预测
2020/05/14 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
台湾家适得:Homeget
2019/02/11 全球购物
策划助理岗位职责
2013/11/18 职场文书
个人自我鉴定写法
2013/11/30 职场文书
ktv总经理岗位职责
2014/02/17 职场文书
购房公证委托书(2014版)
2014/09/12 职场文书
毕业论文答辩开场白和结束语
2015/05/27 职场文书
中学总务处工作总结
2015/08/12 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫