【爬虫问题】爬取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是否为爬虫。
*分布式支持
何为分布式?
*崩溃后进度恢复
通过日志记录详细进度情况,下次直接读取进度,从上次未执行标记的地方开始执行
星号部分为加分项, 可只给出设计思路
.递归获取所有去重复url
URL解析类获取list之后使用字典数据类型,将URL作为key值插入,重复不插入。
或者使用list的去重方法,每次list.add()的时候做一个是否存在值的判断。
.访问所有url,匹配视频信息,写入文本。并记录未成功访问的url。并记录url位置数,可以每次成功爬完当前页面后更新该值。
为文本数据结构为:
URL + 空格 + 成功标记0或1 + URL视频页面相关信息1 + 相关信息2 、、、、
不建议计入文本,最好写入数据库,使用一个布尔类型的字段作为是否成功的标记。
. 检测访问失败的url,看是url爬取不规范或是js或是服务器反爬策略。
待定 反爬策略?有哪些,比如需要模拟HTTP的请求头或者COOKIE值等策略。对其进行模拟添加。
.使用堆及多线程。
多线程爬取视频详细信息同上。
.分布式,可1和4同步执行
获取URL的程序将获取的地址写入文本文件,爬取程序从该文本文件中读取数据并进行爬取操作。两个程序可以同时进行。
【爬虫问题】爬取tv.sohu.com的页面, 提取视频相关信息的更多相关文章
- scrapy-redis实现爬虫分布式爬取分析与实现
本文链接:http://blog.csdn.net/u012150179/article/details/38091411 一 scrapy-redis实现分布式爬取分析 所谓的scrapy-redi ...
- 网络爬虫之定向爬虫:爬取当当网2015年图书销售排行榜信息(Crawler)
做了个爬虫,爬取当当网--2015年图书销售排行榜 TOP500 爬取的基本思想是:通过浏览网页,列出你所想要获取的信息,然后通过浏览网页的源码和检查(这里用的是chrome)来获相关信息的节点,最后 ...
- 使用htmlparse爬虫技术爬取电影网页的全部下载链接
昨天,我们利用webcollector爬虫技术爬取了网易云音乐17万多首歌曲,而且还包括付费的在内,如果时间允许的话,可以获取更多的音乐下来,当然,也有小伙伴留言说这样会降低国人的知识产权保护意识,诚 ...
- python 爬虫之爬取大街网(思路)
由于需要,本人需要对大街网招聘信息进行分析,故写了个爬虫进行爬取.这里我将记录一下,本人爬取大街网的思路. 附:爬取得数据仅供自己分析所用,并未用作其它用途. 附:本篇适合有一定 爬虫基础 crawl ...
- Python爬虫之爬取慕课网课程评分
BS是什么? BeautifulSoup是一个基于标签的文本解析工具.可以根据标签提取想要的内容,很适合处理html和xml这类语言文本.如果你希望了解更多关于BS的介绍和用法,请看Beautiful ...
- [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)
转载自:http://blog.csdn.net/eastmount/article/details/51231852 一. 文章介绍 源码下载地址:http://download.csdn.net/ ...
- python爬虫项目-爬取雪球网金融数据(关注、持续更新)
(一)python金融数据爬虫项目 爬取目标:雪球网(起始url:https://xueqiu.com/hq#exchange=CN&firstName=1&secondName=1_ ...
- 一起学爬虫——通过爬取豆瓣电影top250学习requests库的使用
学习一门技术最快的方式是做项目,在做项目的过程中对相关的技术查漏补缺. 本文通过爬取豆瓣top250电影学习python requests的使用. 1.准备工作 在pycharm中安装request库 ...
- from appium import webdriver 使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium)
使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium) - 北平吴彦祖 - 博客园 https://www.cnblogs.com/stevenshushu/p ...
随机推荐
- ListIterator add remove 使用注意
add方法示例 //在最前面添加 List<String> list1 = new LinkedList<String>(Arrays.asList(new String[] ...
- css元素居中
水平居中 若为行内元素,对其父元素用text-align:center即可: 若为块元素(无浮动),则一般有两种方法可实现对其的水平居中,一为margin:0 auto;二为通过css计算函数calc ...
- servlet方式通过Cookie记住登录时的用户名和密码
1.建立web工程 2.创建存放servlet的包 3右键包,新建servlet,路径将前面的servlet去掉,只需要doPost和doGet方法 编写servlet CookieServlet.j ...
- (转)jquery.validate.js 的 remote 后台验证
之前已经有一篇关于jquery.validate.js验证的文章,还不太理解的可以先看看:jQuery Validate 表单验证(这篇文章只是介绍了一下如何实现前台验证,并没有涉及后台验证remot ...
- ORACLE搭建Stream过程中报错【error收集】
错误一:在配置完源库和目标数据库后,创建复制管理员.连接上复制管理员后,在源库执行MAINTAIN_TABLE过程: declare v_tables DBMS_UTILITY.UNCL_ARRAY; ...
- 1201.1——Vim编辑器的相关操作
一 vi的操作模式 vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode).在输入模式下,用户可输入文本资料.在指令模式下,可进行删除.修改等各种编辑动作. 在 ...
- iOS SearchBar为什么跳不出来第三方输入法
去掉键盘类型就好了 // lineSearchBar.keyboardType = UIKeyboardTypeNamePhonePad;
- flowplayer+flashhls使用过程中发现的一些小问题
flashls里边有好几套代码,主要看生成路径,其中flowplayer用了flashls.swc,flashls.swc使用的代码在这里:/src/org/mangui/hls,所以要注意,当搜索代 ...
- PHP获取指定年份指定月份的天数
最近写接口的时候突然发现的非常实用的php函数,在这儿分享一下: cal_days_in_month(calender,$month,$year): calender:历法,常量,如CAL_GREGO ...
- Indy10 即时通讯Demo
最近闲来无事,重新学习了Indy10,顺手写了一段即时通讯代码.与上次写的笔记有不同之处,但差别不大. 未研究过TCP打洞技术,所以下面的代码采用的是 客户端--服务器--客户端 模式,也就是服务 ...