《用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')
....
完。
最新文章
- DependencyResolver.Current
- iOS证书问题
- MVC之过滤器
- Autofac 的属性注入方式
- WebApi传参总动员(五)
- android背景选择器selector用法汇总
- 修改 ~/.bashrc显示 git 当前分支
- JS中setInterval、setTimeout不能传递带参数的函数的解决方案
- POJ 1519 Digital Roots
- python的生成器
- php DOMDocument 递归 格式化缩进HTML文档
- 出现java.lang.NoSuchFieldException resourceEntries错误的解决方法
- 初学者易上手的SSH-struts2 02Action获取表单数据-通配符
- include指令与include动作的区别(面试要考)
- 【RL-TCPnet网络教程】第22章 RL-TCPnet之网络协议IP
- JS 私有变量
- CRM销售管理功能
- CoreDNS介绍
- alter system set events相关知识
- NLP里面好的学习资料
热门文章
- GCOV&;LCOV&;GCOVR入门
- Yii2 mysql查询 int自动变string解决办法
- java导出excel,多表头合并
- Oracle rac 监听状态异常远程连接问题解决(TNS-12541 TNS-12560 TNS-00511 Linux Error:111 ORA-12502)
- topcoder srm 635 div1
- TCP/IP学习
- 确定有穷自动机(DFA)的化简(最小化)
- jquery-1.4.4.min.js无法解析json中result.data问题
- 【codeforces 438D】The Child and Sequence
- C语言学习——bsmap-2.74_main.cpp