注:纯文本内容,代码独立另写,属于本人学习总结,无任何商业用途,在此分享,如有错误,还望指教。

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')

....

完。

最新文章

  1. DependencyResolver.Current
  2. iOS证书问题
  3. MVC之过滤器
  4. Autofac 的属性注入方式
  5. WebApi传参总动员(五)
  6. android背景选择器selector用法汇总
  7. 修改 ~/.bashrc显示 git 当前分支
  8. JS中setInterval、setTimeout不能传递带参数的函数的解决方案
  9. POJ 1519 Digital Roots
  10. python的生成器
  11. php DOMDocument 递归 格式化缩进HTML文档
  12. 出现java.lang.NoSuchFieldException resourceEntries错误的解决方法
  13. 初学者易上手的SSH-struts2 02Action获取表单数据-通配符
  14. include指令与include动作的区别(面试要考)
  15. 【RL-TCPnet网络教程】第22章 RL-TCPnet之网络协议IP
  16. JS 私有变量
  17. CRM销售管理功能
  18. CoreDNS介绍
  19. alter system set events相关知识
  20. NLP里面好的学习资料

热门文章

  1. GCOV&LCOV&GCOVR入门
  2. Yii2 mysql查询 int自动变string解决办法
  3. java导出excel,多表头合并
  4. Oracle rac 监听状态异常远程连接问题解决(TNS-12541 TNS-12560 TNS-00511 Linux Error:111 ORA-12502)
  5. topcoder srm 635 div1
  6. TCP/IP学习
  7. 确定有穷自动机(DFA)的化简(最小化)
  8. jquery-1.4.4.min.js无法解析json中result.data问题
  9. 【codeforces 438D】The Child and Sequence
  10. C语言学习——bsmap-2.74_main.cpp