【爬虫问题】爬取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 ...
随机推荐
- Gamit解算脚本
这是一个解算单天的shell脚本,对于初学者很有帮助. 首先就是需要在项目(四个字符)建立rinex brdc igs 还有以年纪日命名的目录,然后提前准备好station.info和lfile.文件 ...
- int? 类型数据
在数据库操作中,会遇到在int的单元格恰好为NULL值的情况,这个时候我们可以直接判断是否为null然后进行赋值,有人就想那我刚好用一下:?表达式不就好了: ) ? ); 这时候编译器会报错,原因就是 ...
- javascript 中寻找性能瓶颈
1.如果一个段代码很耗时的话你可以注释掉一部分你认为是很耗时的,或者干脆全部注释掉,然后再一点一点的解开. 2.js优化中最主要的还是对dom操作的优化,单纯的js执行时间是很短的,而js和dom之间 ...
- Oracle 增加修改删除字段
Oracle 增加修改删除字段 添加字段的语法:alter table tablename add (column datatype [default value][null/not null],…. ...
- Property type 'id<tabBarDelegate>' is incompatible with type 'id<UITabBarDelegate> _Nullable' inherited from 'UITabBar'
iOS报错:Property type 'id' is incompatible with type 'id _Nullable' inherited from 'UITabBar' 如图: 可能原因 ...
- Android_Touch_Test
} } }); } }
- TComboBox组件的重要属性
TComboBox组件的重要属性 CharCase--------此属性用于设置编辑框内文字的大小写DropDownCount---此属性用于设置当用户下拉组合框时不需要加滚动条就能显示的项的个数Dr ...
- tomcat加入系统服务
在实际的项目开发中web容器等都是安装在客户方的服务器上的,在实现tomcat的集群时为了实现防止客户重启的机器造成服务器的关闭因此需要将web容器加入到系统服务中,在系统启动的时候自动启动服务,以t ...
- Js正则表达式提取图片地址
JavaScript使用正则表达式和Replace两种方法提取IMG标签图片地址,代码如下: /正则表达式 <script language="javascript"> ...
- Linux命令记录
端口号 1.查看端口号 使用netstat -anp来查看那些端口被打开.加参数'-n'会将应用程序转为端口显示,即数字格式的地址,如:nfs->2049, ftp->21,因此可以开启两 ...