《用Python写爬虫》学习笔记(一)
注:纯文本内容,代码独立另写,属于本人学习总结,无任何商业用途,在此分享,如有错误,还望指教。
1.为什么需要爬虫?
答:目前网络API未完全放开,所以需要网络爬虫知识。
2.爬虫的合法性?
答:爬虫目前处于早期阶段,可爬取一些真实数据,关于私人数据需要获取版权才不至于被人控告。
3.爬虫之前有哪些需要的操作?
1>检查robots.txt (查看有无限制)
查看robots.txt:
#section 1 #禁止用户代理为BadCrawler的爬虫爬取该网站
user-agent:BadCrawler
Disallow:/
#section 2 #无论使用哪种用户代理,都应该在两次下载请求之间给出5秒的抓取延迟
user-agent:*
Crawl-delay:5
#section 3 #提供了网站地图
Sitemap:http://example.webscraping.com/sitemap.xml
2>检查网站地图 (网站提供的sitemap文件可以帮助爬虫定位网站最新的内容,而无须爬取每一个网页
3>查看网站大小 (太大的网站需要的下载方式不同,大小不了解会延误下载时间,可以使用Google查看,即:site:example.webscraping.com)
4>识别网站所用技术 (购建网站所使用的技术类型也会对如何爬取产生影响,工具可以检查网站构建的技术类型---Builtwith模块)
使用方法: 安装 pip install builtwith
>>>import builtwith
>>>builtwith.parse('http://example.webscraping,com')
...
5>寻找网站所有者 (所有者会禁封网络爬虫,最好把下载速度控制的更加保守一些)
使用WHOIS协议查询域名的注册者是谁,python有一个针对该协议的封装库,地址为:https://pypi.python.org/pypi/python-whois,
安装 pip install python whois
使用:>>>import whois
>>>print whois.whois('appspot.com')
....
完。
《用Python写爬虫》学习笔记(一)的更多相关文章
- 《Hadoop》大数据技术开发实战学习笔记(二)
搭建Hadoop 2.x分布式集群 1.Hadoop集群角色分配 2.上传Hadoop并解压 在centos01中,将安装文件上传到/opt/softwares/目录,然后解压安装文件到/opt/mo ...
- 《Hadoop大数据技术开发实战》学习笔记(一)
基于CentOS7系统 新建用户 1.使用"su-"命令切换到root用户,然后执行命令: adduser zonkidd 2.执行以下命令,设置用户zonkidd的密码: pas ...
- 超人学院Hadoop大数据技术资源分享
超人学院Hadoop大数据技术资源分享 http://bbs.superwu.cn/forum.php?mod=viewthread&tid=807&fromuid=645 很多其它精 ...
- java大数据最全课程学习笔记(1)--Hadoop简介和安装及伪分布式
Hadoop简介和安装及伪分布式 大数据概念 大数据概论 大数据(Big Data): 指无法在一定时间范围内用常规软件工具进行捕捉,管理和处理的数据集合,是需要新处理模式才能具有更强的决策力,洞察发 ...
- hadoop大数据技术架构详解
大数据的时代已经来了,信息的爆炸式增长使得越来越多的行业面临这大量数据需要存储和分析的挑战.Hadoop作为一个开源的分布式并行处理平台,以其高拓展.高效率.高可靠等优点越来越受到欢迎.这同时也带动了 ...
- 除Hadoop大数据技术外,还需了解的九大技术
除Hadoop外的9个大数据技术: 1.Apache Flink 2.Apache Samza 3.Google Cloud Data Flow 4.StreamSets 5.Tensor Flow ...
- 大数据技术之_09_Flume学习_Flume概述+Flume快速入门+Flume企业开发案例+Flume监控之Ganglia+Flume高级之自定义MySQLSource+Flume企业真实面试题(重点)
第1章 Flume概述1.1 Flume定义1.2 Flume组成架构1.2.1 Agent1.2.2 Source1.2.3 Channel1.2.4 Sink1.2.5 Event1.3 Flum ...
- 大数据技术之_19_Spark学习_01_Spark 基础解析 + Spark 概述 + Spark 集群安装 + 执行 Spark 程序
第1章 Spark 概述1.1 什么是 Spark1.2 Spark 特点1.3 Spark 的用户和用途第2章 Spark 集群安装2.1 集群角色2.2 机器准备2.3 下载 Spark 安装包2 ...
- 大数据技术之_16_Scala学习_01_Scala 语言概述
第一章 Scala 语言概述1.1 why is Scala 语言?1.2 Scala 语言诞生小故事1.3 Scala 和 Java 以及 jvm 的关系分析图1.4 Scala 语言的特点1.5 ...
- 大数据技术之_16_Scala学习_04_函数式编程-基础+面向对象编程-基础
第五章 函数式编程-基础5.1 函数式编程内容说明5.1.1 函数式编程内容5.1.2 函数式编程授课顺序5.2 函数式编程介绍5.2.1 几个概念的说明5.2.2 方法.函数.函数式编程和面向对象编 ...
随机推荐
- javascript 之 函数
注意:函数名仅仅是一个包含指针的变量而已 函数内部属性 arguments 和this 两个特殊对象 arguments:类数组对象,包含出入函数中的所有参数,主要用途是保存函数参数 callee:该 ...
- 20175312 2018-2019-2 《Java程序设计》第8周学习总结
20175312 2018-2019-2 <Java程序设计>第8周学习总结 教材学习内容总结 已依照蓝墨云班课的要求完成了第十章的学习,主要的学习渠道是PPT,和书的课后习题. 总结如下 ...
- 数据结构与算法(C#)入门 --- 线性表
线性表: 线性表是最简单,最基本,最常用的数据结构.线性表中的数据元素之间存在一对一的关系.即:除了第一个元素,其他元素前面有且只有一个元素:除了最后一个元素,其他元素后面有且只有一个元素.生活中的例 ...
- _string
-- 游戏提示字符串设置-- 小技巧:可以修改游戏的自定义表相关提示符 1 |cFFF49B00[世界聊天]|r%s:%s2 |cFFFC5900[登录公告]|r|cFFFBF326欢迎%s登录创世魔 ...
- gcc使用及动静态库制作
一. GCC的使用 1. GCC的编译过程 (1)预处理(cpp)gcc -E(输出问价通常以 .i 结尾),将头文件展开,宏替换等操作: (2)编译器(gcc)gcc -S(输出问价以 .s 结尾) ...
- unity项目build成webgl时选择生成目录(解决方法)
在unity里点击File>>Build Settings...>>勾选你要生成的Scenes>>选择webgl>>后面Development Buil ...
- C# FTP操作类的代码
如下代码是关于C# FTP操作类的代码.using System;using System.Collections.Generic;using System.Text;using System.Net ...
- 用node.js启动mock.js
Node.js Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP.Python.Perl.Ruby 等服务端语言平起平坐的脚本语言.官网下载n ...
- Vue的父子组件间通信及借助$emit和$on解除父子级通信的耦合度高的问题
1.父子级间通信,父类找子类非常容易,直接在子组件上加一个ref,父组件直接通过this.$refs操作子组件的数据和方法 父 这边子组件中 就完成了父 => 子组件通信 2. 子 =&g ...
- python 近义词库包 synonyms 的使用
最近接触到nlp的一些东西,需要找出中文词语的近义词,也接触到了一个synonyms 的库, 分词,去停用词,word2vector 等 一些列nlp 的操作,还可以输出中文词语的近义词 https ...