标签:delete 抓取 lis 存在 进度 多线程 支持 span 建议
尝试解决下面的问题
问题: 爬取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的程序将获取的地址写入文本文件,爬取程序从该文本文件中读取数据并进行爬取操作。两个程序可以同时进行。
【爬虫问题】爬取tv.sohu.com的页面, 提取视频相关信息
标签:delete 抓取 lis 存在 进度 多线程 支持 span 建议
原文地址:http://www.cnblogs.com/jhli/p/6055248.html