zoukankan      html  css  js  c++  java
  • 几个Python爬虫工具介绍

    Request

    Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用

    上面一句话 出自Requests官方文档的第一句,从而奠定了其逗逼的文档风格。类似的还有:

    警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。

    Request是一个基于urllib3的Python的Http库。这里就可以看出它的存在是为了取代urllib、urllib2等Http工具的江湖地位的,事实上确实如此,相对于前两者来说它是更高级的工具。比如urllib和urllib2配合使用的时候我们需要手动地用urlencode为POST表单数据编码或者手动为GET方式添加url的查询字符串,使用requests就不需要考虑这种问题。还有keep-alive和Http连接池的功能都是全自动化的。
    它的官方文档简单明了,在这里可以找到

    Beautiful Soup

    当我学习用正则表达式抓取网页内容的时候,就在想这种对着每个页面反反复复的盯着看,都要长鸡眼了,就是为了写一个正则表达式,是不是效率太低也太容易出错了。Beautiful Soup这种工具很明显就是为了解决我的这种疑惑的。

    它是一个用于从HTML和XML文档中提取数据的Python库,可以实现文档的导航、查找、修改,让我们从繁琐、低效、易错的正则表达式中解脱出来。它把HTML这种基于标签的文档组织成树的结构,方便我们用面向对象的方式获取内容。目前最新的是beautifulsoup4。

    我的系统是Ubuntu16.04,安装Beautiful Soup:

    sudo pip install beautifulsoup4
    

    Beautiful Soup有中文版的文档,在这里
    Beautiful Soup是一个获取文档内容的高层的封装,它是支持多种解析器的,默认的是Python标准库中的HTMLParser。第三方解析器支持lxml和html5lib,不同的解析器有各自的特点,官方文档中做出了对比的表格。在用html文档构造beautifulsoup对象的时候,可以指定解析器来解析文档:

    from bs4 import  BeautifulSoup
    soup = BeautifulSoup(open("index.html"),  "html.parser")
    

    如果不指定而系统中又有多种解析器的话,系统会选择最合适的解析器来解析文档。
    BeautifulSoup把HTML的每个节点都转换成Python对象,这些对象分为Tag , NavigableString , BeautifulSoup , Comment四个种类。
    Tag:也就是xml或者HTML中的标签
    NavigableString:称为“可以遍历的字符串”
    Beautiful

    测试网站:http://httpbin.org/

    这是一个专门用于测试Http请求和相应的网站。在学习各种工具和方法的时候做实验尝试和验证是必不可少的环节,这种时候这个网站就排上了用场。它支持各种HTTP的场景,请求的响应内容都是以json编码的。例如:

    $ curl http://httpbin.org/ip
    
    {"origin": "24.127.96.129"}
    

    事实上,Requests的官网就是是它来讲解的例子。

  • 相关阅读:
    VisionPro 极坐标圆形物体缺陷检测
    VisionPro CogSobeEdgeTool工具
    VisionPro CogLinescanDistortionCorrectionTool工具 图像处理工具
    VisionPro CogIPTwoImageSubtractTool工具 图像处理工具
    云原生技术实践-关键要素和原则
    深度解析项目管理
    商业进化图谱
    一张图理解网络的几个专有名词:数据、段、包、帧、比特
    泛在感知中台建设方案
    区块链生态架构图
  • 原文地址:https://www.cnblogs.com/mooba/p/6139437.html
Copyright © 2011-2022 走看看