为什么说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错误提示:[Errno 24] Too many open files的分析与解决
Feb 16 Python
python生成圆形图片的方法
Mar 25 Python
Python解决走迷宫问题算法示例
Jul 27 Python
Django添加KindEditor富文本编辑器的使用
Oct 24 Python
pandas分别写入excel的不同sheet方法
Dec 11 Python
python实现QQ空间自动点赞功能
Apr 09 Python
你可能不知道的Python 技巧小结
Jan 29 Python
python实现打砖块游戏
Feb 25 Python
python中列表的含义及用法
May 26 Python
Keras 快速解决OOM超内存的问题
Jun 11 Python
django表单中的按钮获取数据的实例分析
Jul 31 Python
简述python Scrapy框架
Aug 17 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实现二分查找算法代码分享
2011/06/24 PHP
PHP中将ip地址转成十进制数的两种实用方法
2013/08/15 PHP
php判断并删除空目录及空子目录的方法
2015/02/11 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
location.href语句与火狐不兼容的问题
2010/07/04 Javascript
jquery如何判断某元素是否具备指定的样式
2013/11/05 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
2014/06/26 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
jQuery实现可移动选项的左右下拉列表示例
2016/12/26 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
详解Vue中使用Axios拦截器
2019/04/22 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
[52:08]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第一局
2016/03/05 DOTA
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
Python判断变量是否已经定义的方法
2014/08/18 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
Python3 main函数使用sys.argv传入多个参数的实现
2019/12/25 Python
Python模块_PyLibTiff读取tif文件的实例
2020/01/13 Python
python实现批处理文件
2020/07/28 Python
Python学习笔记之装饰器
2020/08/06 Python
LightInTheBox西班牙站点:全球商品在线采购
2016/09/22 全球购物
股指期货心得体会
2014/09/10 职场文书
论群众路线学习笔记
2014/11/06 职场文书
小学新教师个人总结
2015/02/05 职场文书
社区元宵节活动总结
2015/02/06 职场文书
导游词之岳阳楼
2019/09/25 职场文书
nginx网站服务如何配置防盗链(推荐)
2021/03/31 Servers
Python多个MP4合成视频的实现方法
2021/07/16 Python