选择Python写网络爬虫的优势和理由


Posted in Python onJuly 07, 2019

什么是网络爬虫?

网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件

爬虫有什么用?

  • 做为通用搜索引擎网页收集器。(google,baidu)
  • 做垂直搜索引擎.
  • 科学研究:在线人类行为,在线社群演化,人类动力学研究,计量社会学,复杂网络,数据挖掘,等领域的实证研究都需要大量数据,网络爬虫是收集相关数据的利器。
  • 偷窥,hacking,发垃圾邮件……

爬虫是搜索引擎的第一步也是最容易的一步

选择Python写网络爬虫的优势和理由

• 网页搜集

• 建立索引

• 查询排序

用什么语言写爬虫?

C,C++。高效率,快速,适合通用搜索引擎做全网爬取。缺点,开发慢,写起来又臭又长,例如:天网搜索源代码。
脚本语言:Perl, Python, Java, Ruby。简单,易学,良好的文本处理能方便网页内容的细致提取,但效率往往不高,适合对少量网站的聚焦爬取

C#?(貌似信息管理的人比较喜欢的语言)

为什么最终选择Python?

  • 跨平台,对Linux和windows都有不错的支持。
  • 科学计算,数值拟合:Numpy,Scipy
  • 可视化:2d:Matplotlib(做图很漂亮), 3d: Mayavi2
  • 复杂网络:Networkx
  • 统计:与R语言接口:Rpy
  • 交互式终端
  • 网站的快速开发?

一个简单的Python爬虫

import urllib
import urllib.request

def loadPage(url,filename):
 """
 作用:根据url发送请求,获取html数据;
 :param url:
 :return:
 """
 request=urllib.request.Request(url)
 html1= urllib.request.urlopen(request).read()
 return html1.decode('utf-8')

def writePage(html,filename):
 """
 作用将html写入本地

 :param html: 服务器相应的文件内容
 :return:
 """
 with open(filename,'w') as f:
  f.write(html)
 print('-'*30)
def tiebaSpider(url,beginPage,endPage):
 """
 作用贴吧爬虫调度器,负责处理每一个页面url;
 :param url:
 :param beginPage:
 :param endPage:
 :return:
 """
 for page in range(beginPage,endPage+1):
  pn=(page - 1)*50
  fullurl=url+"&pn="+str(pn)
  print(fullurl)
  filename='第'+str(page)+'页.html'
  html= loadPage(url,filename)

  writePage(html,filename)



if __name__=="__main__":
 kw=input('请输入你要需要爬取的贴吧名:')
 beginPage=int(input('请输入起始页'))
 endPage=int(input('请输入结束页'))
 url='https://tieba.baidu.com/f?'
 kw1={'kw':kw}
 key = urllib.parse.urlencode(kw1)
 fullurl=url+key
 tiebaSpider(fullurl,beginPage,endPage)

以上就是关于为什么Python写网络爬虫的全部理由和知识点,感谢大家的阅读和对三水点靠木的支持。

Python 相关文章推荐
PHP webshell检查工具 python实现代码
Sep 15 Python
python 文件和路径操作函数小结
Nov 23 Python
python中input()与raw_input()的区别分析
Feb 27 Python
Python正则抓取新闻标题和链接的方法示例
Apr 24 Python
对Python进行数据分析_关于Package的安装问题
May 22 Python
对pandas replace函数的使用方法小结
May 18 Python
Matplotlib中文乱码的3种解决方案
Nov 15 Python
python 获取毫秒数,计算调用时长的方法
Feb 20 Python
Python 一键获取百度网盘提取码的方法
Aug 01 Python
手把手教你pycharm专业版安装破解教程(linux版)
Sep 26 Python
Django app配置多个数据库代码实例
Dec 17 Python
详解Anaconda 的安装教程
Sep 23 Python
python和c语言的主要区别总结
Jul 07 #Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
Jul 06 #Python
pandas进行时间数据的转换和计算时间差并提取年月日
Jul 06 #Python
python中时间、日期、时间戳的转换的实现方法
Jul 06 #Python
pandas 时间格式转换的实现
Jul 06 #Python
pandas中的series数据类型详解
Jul 06 #Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 #Python
You might like
php中批量替换文件名的实现代码
2011/07/20 PHP
PHP高级对象构建 工厂模式的使用
2012/02/05 PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
2013/01/27 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
php实现的简单日志写入函数
2015/03/31 PHP
Zend Framework教程之资源(Resources)用法实例详解
2016/03/14 PHP
PHP基于递归算法解决兔子生兔子问题
2018/05/11 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
jQuery子属性过滤选择器用法分析
2015/02/10 Javascript
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
AngularJS控制器继承自另一控制器
2016/05/09 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
vue.js选中动态绑定的radio的指定项
2017/06/02 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
新手快速入门微信小程序组件库 iView Weapp
2019/06/24 Javascript
layui输入框只允许输入中文且判断长度的例子
2019/09/18 Javascript
webpack HappyPack实战详解
2019/10/08 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
[06:10]6.81新信使新套装!给你一个炫酷的DOTA2
2014/05/06 DOTA
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
Python中str is not callable问题详解及解决办法
2017/02/10 Python
Python使用修饰器执行函数的参数检查功能示例
2017/09/26 Python
Python 修改列表中的元素方法
2018/06/26 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
python实现的config文件读写功能示例
2019/09/24 Python
Python 日期的转换及计算的具体使用详解
2020/01/16 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
恒华伟业笔试面试题
2015/02/26 面试题
春节联欢会策划方案
2014/05/16 职场文书
员工工作能力评语
2014/12/31 职场文书