选择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 相关文章推荐
Python模仿POST提交HTTP数据及使用Cookie值的方法
Nov 10 Python
详解Python中for循环的使用方法
May 14 Python
CentOS中使用virtualenv搭建python3环境
Jun 08 Python
Django实现快速分页的方法实例
Oct 22 Python
AI人工智能 Python实现人机对话
Nov 13 Python
python实现数据写入excel表格
Mar 25 Python
Python网络编程使用select实现socket全双工异步通信功能示例
Apr 09 Python
python实现输入的数据在地图上生成热力图效果
Dec 06 Python
python使用配置文件过程详解
Dec 28 Python
pytorch 准备、训练和测试自己的图片数据的方法
Jan 10 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
Mar 08 Python
解决Jupyter因卸载重装导致的问题修复
Apr 10 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和ACCESS写聊天室(二)
2006/10/09 PHP
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
php foreach、while性能比较
2009/10/15 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
2017/09/29 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
2009/04/10 Javascript
JavaScript Sort 表格排序
2009/10/31 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
JS冒泡事件的快速解决方法
2013/12/16 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
javascript实现根据时间段显示问候语的方法
2015/06/18 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
详解最新vue-cli 2.9.1的webpack存在问题
2017/12/16 Javascript
微信小程序实现两个页面传值的方法分析
2018/12/11 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
webpack的pitching loader详解
2019/09/23 Javascript
js实现贪吃蛇小游戏
2019/10/29 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
详解vue-router的Import异步加载模块问题的解决方案
2020/05/13 Javascript
Vue组件通信$attrs、$listeners实现原理解析
2020/09/03 Javascript
关于小程序优化的一些建议(小结)
2020/12/10 Javascript
python使用mailbox打印电子邮件的方法
2015/04/30 Python
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
如何用python整理附件
2018/05/13 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
2019/09/02 Python
学会python自动收发邮件 代替你问候女友
2020/05/20 Python
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
平面设计求职信
2014/03/10 职场文书
公司股权转让协议书
2014/04/12 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
个人收入证明模板
2014/09/18 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
2021/11/27 Vue.js