zoukankan      html  css  js  c++  java
  • 【爬虫问题】爬取tv.sohu.com的页面, 提取视频相关信息

    尝试解决下面的问题

    问题: 爬取tv.sohu.com的页面, 提取视频相关信息,不可用爬虫框架完成
    
    
    何为视频i关信息?属性有哪些?
    
    需求:
    
        做到最大可能的页面覆盖率
    *使用httpClient 模拟获取页面HtmlText源码信息,正则出源码视频URL解析类HtmlText2URLlist.ashx。
    正则式:href="(.*?)"
        选择重要的信息进行存储
    
        选择合适的数据存储方式,便于后续使用
    
    数据库字段 ID、URL、IsSuccess、Title、Isdelete、VideoSize、VideTime、相关需要的视频信息、、、
    
        可通过参数限制要抓取视频信息的数目
    *界面视频信息属性选择
    
        要用多线程方式完成抓取
    *使用多线程去处理 每个URLlist 额对象,解析参数
    
        反防抓取策略
    反爬策略:网页的最下面添加一个JS的异步请求,此异步请求用来减计数器的值,进页面时对IP进行加值,出页面时减值,生成一个差值。 根据我们之前的分析,爬虫不会执行异步JS减值请求。 这样可以从生成的值的大小上判断这个IP是否为爬虫。
    
    
        *分布式支持
    何为分布式?
        *崩溃后进度恢复
    通过日志记录详细进度情况,下次直接读取进度,从上次未执行标记的地方开始执行
    
    星号部分为加分项, 可只给出设计思路
    
    1.递归获取所有去重复url    
      
    URL解析类获取list之后使用字典数据类型,将URL作为key值插入,重复不插入。
    或者使用list的去重方法,每次list.add()的时候做一个是否存在值的判断。
    
    2.访问所有url,匹配视频信息,写入文本。并记录未成功访问的url。并记录url位置数,可以每次成功爬完当前页面后更新该值。
    
    为文本数据结构为:
    URL + 空格 +  成功标记0或1  + URL视频页面相关信息1 + 相关信息2 、、、、
    不建议计入文本,最好写入数据库,使用一个布尔类型的字段作为是否成功的标记。
    
    3. 检测访问失败的url,看是url爬取不规范或是js或是服务器反爬策略。
    
    待定 反爬策略?有哪些,比如需要模拟HTTP的请求头或者COOKIE值等策略。对其进行模拟添加。
    
    4.使用堆及多线程。
    
    多线程爬取视频详细信息同上。
    
    5.分布式,可1和4同步执行
    
    获取URL的程序将获取的地址写入文本文件,爬取程序从该文本文件中读取数据并进行爬取操作。两个程序可以同时进行。
  • 相关阅读:
    XAF-内置初始化数据 (XPO)
    XAF中多对多关系 (XPO)
    Implement Custom Business Classes and Reference Properties 实现自定义业务类和引用属性(XPO)
    Add a Class from the Business Class Library 从业务类库添加类 (XPO)
    Set a One-to-Many Relationship设置一对多关系 (XPO)
    Define the Data Model and Set the Initial Data 定义数据模型并设置初始数据
    Create an XAF Application 创建一个XAF应用程序
    XAF Architecture XAF架构
    功能区控件样式设置
    开源项目CIIP(企业信息管理系统框架).2018.1.0910版更新介绍-上周工作总结
  • 原文地址:https://www.cnblogs.com/jhli/p/6055248.html
Copyright © 2011-2022 走看看