最好用国外网页视频抓取工具软件(#Python很强大,熟练的程序员可以在5分钟内写出一个有价值的爬虫)
优采云 发布时间: 2021-10-04 13:07最好用国外网页视频抓取工具软件(#Python很强大,熟练的程序员可以在5分钟内写出一个有价值的爬虫)
####
Python很强大,熟练的程序员可以在5分钟内写出一个有价值的爬虫,比如:-抓取股票信息-抓取笑话-抓取产品信息
但是大部分抓到的网站都不是你能抓到的木鸡。如果你抓住它,你会反抗!
这是网站和程序员之间的游戏!所有的程序员,何必呢?程序员为什么要让程序员难堪!
任何游戏都不容易!因为路高一尺,魔鬼高一尺。
抓到他就可以防,改进抓法,他就改进防抓法!
抓到什么就抓什么,这不是对网站程序员的侮辱吗?
如果有人问你:XX网站能抓到吗?
答案是肯定的:是的!
从技术角度来说,只要能看到网络上的内容,绝对可以抓到!无非就是爬行的难度。
本文总结了实现爬虫的8个常见难点,以及基本解决方案。
1. 不小心爬进监狱
在技术手段上:世界上没有抓不到的网站!
从法律上讲,有句话叫:爬虫写得好,犯人早吃!我现在里面还有一个好哥们儿,说到嘴里都含着泪水。
俗话说,有规律,爬虫有规律!错误规则是robots.txt。
robots.txt 是网站 写给爬虫的声明,声明内容不能被爬取。robots.txt一般放在网站的根目录下。
以B站为例,直接在浏览器中输入:/robots.txt
您可以看到以下内容:
很明显,无法抓取以“/include/”、“/mylist/”等开头的URL。
你说抓不到就别抓,不然警察会抓到你的!
但是国内很多网站不守规矩,不讲武功,网站里也没有robots.txt。那我们该怎么办呢?
我们可以从几个方面来看:-是敏感信息吗?如果涉及私人敏感信息,请勿捕捉。- 你刮了多少?一般来说,金额小就可以,但金额大时要小心。例如:偷10元不会坐牢,但偷10万元肯定会给你免费住宿。
如果只是抓取自己的产品、邮件、账单等,一般是没有问题的。
如果不确定能不能抓包,也可以直接联系网站的站长询问能不能抓包,或者有没有数据接口。
2. 复杂多变的网页结构
网页的复杂性体现在两个方面: 1. 同一个网页,在展示不同的内容时,其结构是不同的。
比如商品详情页,不同的商品,使用不同的网页模板,这是正常情况。
另一个例子是产品列表页面。如果没有产品,有一个产品,有多个产品,可能会有款式上的差异。
如果你的爬虫只能处理一种情况,那么在爬取过程中难免会出现问题。
网页功能或设计风格的变化。
一般爬虫使用xpath根据网页的结构来解析内容。一旦结构改变,就无法解析。
如何解决?
不管网页结构如何变化,一套代码就可以搞定,规律性更好写,准确率也高。
3. IP 阻塞
IP 阻塞是一种常见的反爬虫方法。
当网站发现某个IP地址发送的请求过多时,会暂时或永久阻塞该IP的请求。
技术好,监管好网站一般都是提前定好规则,比如一天只访问500次,或者一分钟不超过10次访问。
当您超过次数时,您将被自动屏蔽,并自动解锁时限。
技术差的网站可能没有这样的规定,网站挂了,或者管理员发现异常后查看日志,发现你请求的太多了。
因为他们没有现成的规则和技术手段,他们可能简单粗暴,直接在Web Server上设置永久封锁你的IP地址。
处理IP阻塞的一般方法:-不要频繁抓取,在两次请求之间设置一定的随机间隔。-探索网站的规则,然后根据规则抓取。- 使用IP代理服务不断更换IP。如果你不怕花钱,你可以使用收费的IP代理。如果你不想花钱,你可以找一个免费的。网上搜索,免费的有很多,但可能不稳定。
4. 图片验证码
图像验证码是另一种最常用的防爬技术。
当您登录网站,或检测到您请求过多时,网站会弹出一张图片,要求您输入图片上的内容。
图片上的内容一般都是扭曲的文字,甚至是数学公式,让你输入计算结果。
这很容易处理。一般使用OCR技术,比如Python的Tesserocr库,可以自动识别图片上的内容,然后自动填充,继续爬取。
但是图片验证码在不断的进化和升级,比如国外的谷歌验证码,常常让我哭笑不得:
或 12306:
简单的OCR技术很难处理这种图片,但总有办法:——人工智能技术被称为人工智能,即它可以和人类一样,甚至比人类更聪明。北京大学、英国兰卡和美国西北大学的几位研究人员声称已经使用人工智能研究了一种非常快速的破解验证码的方法。- 使用专业解码服务。有需求就会有产品,专业的事情就交给专业的人来处理。一些公司专门提供相关服务。你调用他们的API或者使用他们的插件来解决验证码问题。
-人肉解码:当爬虫到达验证码时,暂停,等待手动输入验证码,然后继续。
5. 蜜罐陷阱
蜜罐陷阱是 网站 开发人员用来快速识别爬虫的技巧。
添加一些链接到 网站 并通过 CSS 设置这些链接对人类不可见:
display: none
当爬虫解析 HTML 时,它可以找到这些链接,因此它点击链接并爬入。
进入后,立即阻止您的 IP。
解决方法也很简单,在解析网页的时候加一些逻辑判断是否可见即可。
6. 网页加载速度慢
一些网站 报告很慢。当请求量很大时,会时不时的失败。
这对人们来说可能没问题。请耐心等待并刷新页面。
爬虫还应该添加相应的逻辑:-设置合理的超时时间。太短的网页在完成加载之前就会失败。过长的网页会爬取慢,效率太低。- 添加自动重试机制。但重试次数一般不应超过5次。如果失败了三五次,再试一次一般是没有用的。下次你可以再试一次。
7. Ajax 动态内容
许多 网站 使用 Ajax 动态加载某些内容。也就是说主请求只返回网页的主内容,其他内容通过后续的ajax请求动态获取。
以B站为例,视频详情页的HTML页面只有视频的基本信息,评论等都是通过后续的ajax请求获取的。
我们用爬虫爬取的时候,只获取到了第一个HTML,无法获取到后面的内容。
尤其是近几年流行的前后端分离,所有的数据都是通过Ajax获取的。我得到的 HTML 页面只是一个空架子,里面没有数据。
一般有两种解决方法:
- 分析浏览器的网络请求,弄清楚后续的请求是什么,然后使用爬虫发起相同的后续请求。
- 使用硒等浏览器驱动技术。因为它们最初是通过程序打开浏览器来访问的,所以后续的ajax请求也是可以的。
第一种方法是技术活,但是一旦分析出来,爬行速度会更快。
8. 登录请求
部分内容需要登录后才能访问,这种情况请先阅读本文第1点,以免爬入监狱。
但是如果是自己的账号,一般是没有问题的。
解决方案:
-如果只是临时抓取一些网站的内容,可以先手动登录,分析浏览器的cookies,然后在爬虫请求中加入相同的cookies。
-对于简单登录网站,还可以在脚本中自动填写您的用户名和密码,无需人工干预。
- 或者当需要输入密码时,让爬虫暂停,手动输入密码后继续爬取。
9. *敏*感*词*爬行
专业的爬虫不会满足于简单的爬行。它的名字中有一个爬行词。它会抓取网页上的链接,然后自动抓取链接中的内容。如果循环继续,整个世界都会是这样。
这带来了很多问题,仅举几个例子:-要抓取的网页数量巨大-爬虫可能会在点击链接后爬回他的家-许多网页已被重定向-他们抓取了很多他们不需要的内容-爬回的数据量巨大
当你面对这些问题时,爬虫问题就变成了“爬虫+工程”的问题。
简单的解决方法是使用爬虫框架,比如Python中的Scrapy,它会帮你记录那些已经被抓到的,那些没有被抓到的,以及设置抓取的深度和宽度等等。
更复杂的是,你需要一个专业的团队来使用大数据技术进行并发处理和数据处理。这是问题的另一个方面。
这是我的一点心得和分享,不一定全面。
女士们,先生们,您遇到了哪些困难?你有什么解决方案?请留言。
#####