• 网络爬虫经验小结


    一 知识域/学习路径

    1.1 初级阶段

      java: net(网络编程)、IO、多线程(含:线程池)、正则表达式、集合、JDBC/数据库等

      python: urllib.request

      NodeJs/JavaScript: http

    1.2 中级阶段

      java: Jsoup(优势:HTML DOM解析)、HttpClient(优势:下载/IP代理等)、OKHttp、HTML Parser(优势:解析)、JavaScript/HTML(函数、JSON、Ajax、JacaScript DOM)等

      NodeJs/JavaScript: express

    1.3 进阶

      java: web自动化测试框架selenium【WebDriver/ChromeDriver】(优势:下载/解析)

      python: scrapy、web自动化测试框架selenium(WebDriver/ChromeDriver)

      NodeJs/JavaScript: web自动化测试框架(PhantomJS/ selenium)

    1.4 高级阶段

      java: Heritrix网络爬虫框架

    一个由 java 开发的、开源的网络爬虫,用户可以使用它来从网上抓取想要的资源。其最出色之处在于它良好的可扩展性,方便用户实现自己的抓取逻辑。

    1.5 涉及经验

      计算机网络(网络编程/ HTTP&TCP协议)

        HTTP报文

          报文头:

            请求方法: GET/POST .etc

            遵循协议: HTTP / HTTPS .etc

          请求体

        网络抓包与调试: Chrome开发者工具、Fiddle、Postman等

        IP代理

      文件操作  

      数据库 / JDBC  

      数据结构(栈/队列/List/Set/Map/深度优先/广度优先等)

      Cookie/Session

      反爬虫机制、模拟登陆

      多线程编程

        线程池/多线程爬行

      分布式爬虫

      可能涉及技巧:JS注入、模拟鼠标滑动、验证码识别(英文字母/数字/汉字/物品识别等)、延时请求(降低请求频率)等

      可能涉及语言:Python、Java、JavaScript、HTML、CSS等

      网页正文提取方法:Jsoup(基于 HTMLO DOM解析树)等、Html2Article(基于行块分布函数的通用正文抽取算法)

    二 入门级演示

    2.1 Python简易Demo

    由于Python3合并URLib与URLlib2统一为URLlib,Python3将urlopen方法放在了urllib.request对象下。

    官方文档:https://docs.python.org/3/library/urllib.request.html#module-urllib.request

    在实现爬取网页过程中,屡次执行以下脚本:

    #coding:UTF-8
    import random;
    import urllib.request;# 不推荐使用 import urllib
    rawdata =
    urllib.request.urlopen('http://www.111cn.net/phper/python/68713.htm').read();
    
    file = open("testfile","w+");
    file.write(str(rawdata));

    三 参考文档

      [1] Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)

      [2] 基于行块分布函数的通用正文抽取算法.陈鑫.哈尔滨工业大学社会计算与信息检索研究中心

      [3] 网页正文提取——Html2Article

  • 相关阅读:
    swift
    swift
    ios
    Swift
    swift
    swift
    /var/log/cron
    Django 数据传递
    HTML 属性
    HTML 元素
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/7420583.html
Copyright © 2020-2023  润新知