为什么说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 代码性能优化技巧分享
Aug 07 Python
python中遍历文件的3个方法
Sep 02 Python
python利用lxml读写xml格式的文件
Aug 10 Python
python基础while循环及if判断的实例讲解
Aug 25 Python
详解python string类型 bytes类型 bytearray类型
Dec 16 Python
Python实现分段线性插值
Dec 17 Python
介绍一款python类型检查工具pyright(推荐)
Jul 03 Python
python图形用户接口实例详解
Dec 16 Python
Django 路由层URLconf的实现
Dec 30 Python
pytorch forward两个参数实例
Jan 17 Python
python实现简单学生信息管理系统
Apr 09 Python
Python+pyaudio实现音频控制示例详解
Jul 23 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
咖啡店都有些什么常规豆子呢?有什么风味在里面
2021/03/04 咖啡文化
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
php实现自动获取生成文章主题关键词功能的深入分析
2013/06/03 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
写的htc的数据表格
2007/01/20 Javascript
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
使用jQuery.fn自定义jQuery翻页插件
2013/01/20 Javascript
jQuery学习笔记之 Ajax操作篇(一) - 数据加载
2014/06/23 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
2017/02/19 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
Python编程之string相关操作实例详解
2017/07/22 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
python字典通过值反查键的实现(简洁写法)
2020/09/30 Python
python实现图片转字符画
2021/02/19 Python
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
Burt’s Bees英国官网:世界领先的天然个人护理品牌
2020/08/17 全球购物
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
浙大毕业生自荐信
2014/01/26 职场文书
空气环保标语
2014/06/12 职场文书
委托书的写法
2014/08/30 职场文书
主题班会开场白
2015/06/01 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang