为什么说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中使用中文的方法
Feb 19 Python
Python获取文件ssdeep值的方法
Oct 05 Python
用Python代码来解图片迷宫的方法整理
Apr 02 Python
用生成器来改写直接返回列表的函数方法
May 25 Python
Python在不同目录下导入模块的实现方法
Oct 27 Python
Python 机器学习库 NumPy入门教程
Apr 19 Python
Python装饰器基础概念与用法详解
Dec 22 Python
用Python读取几十万行文本数据
Dec 24 Python
树莓派采用socket方式文件传输(python)
Jun 22 Python
Python 脚本实现淘宝准点秒杀功能
Nov 13 Python
python中的TCP(传输控制协议)用法实例分析
Nov 15 Python
Django如何使用redis作为缓存
May 21 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
php5.5中类级别的常量使用介绍
2013/10/02 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2007/02/15 Javascript
JavaScript中null与undefined分析
2009/07/25 Javascript
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
jQuery Tools Dateinput使用介绍
2012/07/14 Javascript
Javascript setInterval的两种调用方法(实例讲解)
2013/11/29 Javascript
JSON格式化输出
2014/11/10 Javascript
javascript实现俄罗斯方块游戏的思路和方法
2015/04/27 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
jQuery中inArray方法注意事项分析
2016/01/25 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
2020/05/13 Javascript
Vue实现返回顶部按钮实例代码
2020/10/21 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
python实现在控制台输入密码不显示的方法
2015/07/02 Python
python爬虫爬取淘宝商品信息
2018/02/23 Python
Python判断以什么结尾以什么开头的实例
2018/10/27 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
2019/09/16 Python
Python selenium如何打包静态网页并下载
2020/08/12 Python
美国最受欢迎的童装品牌之一:The Children’s Place
2016/07/23 全球购物
香港万宁官方海外旗舰店:香港健与美连锁店
2018/09/27 全球购物
实习心得体会
2014/01/02 职场文书
优质服务演讲稿
2014/05/14 职场文书
电焊工岗位工作职责
2014/07/09 职场文书
中学生关于梦想的演讲稿
2014/08/22 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书
2014年汽车销售工作总结
2014/12/01 职场文书
朋友离别感言
2015/08/04 职场文书
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
2021/08/23 MySQL
JavaScript 中for/of,for/in 的详细介绍
2021/11/17 Javascript
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技