Python Webscraping

Python作为强大的脚本语言,非常适合编写网络爬虫。
在实际开始编写爬虫获取某一个网站数据的时候,应当对某一个网站有着充分的了解,方便后续程序的编写。

  • 通过Google大致了解网站的大小
    Google作为强大的搜索工具,本质上也是一个爬虫。通过在网址前添加site关键字,可以先利用Google来大致了解网站的大小,并且支持/来过滤结果。不过这种这种方法只能用来大致估算,并且对于一些大型网站,这种估算不是很准确。

  • site:www.zhihu.com/topic

    site:www.zhihu.com/topic

  • 通过robots.txt文件了解网站
    目前虽然对于爬虫还没有一个正式的法规或协议来约束,但是大多数网站都会有一个robots.txt文件。文件中包含了一些建议,但并不会强制执行,它可以让我们以最快速度的了解到网站对于爬虫的限制,从而将来降低爬虫被封禁的风险。

www.zhihu.com/robots.txt

(知乎的robot.txt真是简单粗暴。。)
User-agent定义了使用的用户代理,*表示对于所有的用户代理;
Crawl-delay规定了两次抓取间的延时应为10s;
Disallow表示不允许爬取的页面。

  • 识别建站技术
    一个网站如何构建将对我们的爬取方式产生影响,我们可以使用Python的builtwith模块来帮助我们完成这一任务。可以通过pip install builtwith命令很方便的安装这一模块。
    以网站的URL作为参数来进行解析。
    import builtwith
    print builtwith.parse("http://bbc.com")

  • 寻找网站的所有者
    因为不同的所有者对于爬虫的态度不尽相同,所以提前了解一个网站的所有者也是很有必要的。Python中提供了whois模块来完成这一任务。可以通过pip install python-whois命令来很方便的安装这一模块。

whois

可以看到域名归属于godaddy。

推荐阅读更多精彩内容