网站文章自动采集(一个制作数据采集助手程序有这样一个需求场景(组图))
优采云 发布时间: 2022-01-04 07:16网站文章自动采集(一个制作数据采集助手程序有这样一个需求场景(组图))
很多人说数据采集是一个进入门槛极低,进阶和深入门槛极高的方向。周先生相信。
最简单的爬虫就是用编程语言甚至Excel来实现一个HTTP请求和响应,数据在手。真的很简单。
然而,互联网正在迅速变化。昨天采集的数据已经不能是采集了。昨天还畅通无阻的网站,今天变成了障碍。
今天的国家先生提出了一些建议,并简要分享了他在工作中遇到的数据采集障碍,以及相应的解决方法,方法简单粗暴。
BrowserMobProxy 拦截接口动态加密参数
场景:在电商平台的产品管理后台,所有数据接口都会携带一个加密参数。这个参数是由页面上的某个JS脚本生成的,可以在一段时间内一次性获取。使用。
生成反向参数的过程是一件苦差事。此外,它可以使用一段时间。所以只需使用 Selenium + BrowserMobProxy。自动登录成功后,解析响应中指定接口的URL参数。获取加密参数并保存,以备后续数据采集代码使用。
PyQt5 生产数据采集辅助程序
有这样一个需求场景,采集程序需要打包给非计算机专业人士使用(小白),采集的网站需要登录,数据仓采集不需要高频率、高并发等你打算怎么办?
可选的解决方案是 Selenium/PyPPeteer 来处理身份验证和登录状态,以及数据请求采集。
我这里选择的方案是PyQt5 provider的图形化操作界面,使用PyQt5的QWebEngine组件手动登录网站给用户,获取登录cookie;在数据的 PyQt5 采集 子线程中使用请求。最后使用PyInstaller打包成二进制文件,用户可以下载运行到傻瓜式进行数据采集。
MitmProxy 篡改滑块验证码结果
众所周知,为了防止数据采集,某宝的登录页面添加了很多防爬机制,滑块验证就是其中之一。
起初,我痴迷于模拟人体滑动曲线,但没有成功。后来干脆用mitmproxy启动了中间人代理模式,抓到了滑块验证码相关接口的请求和响应,并篡改了它的响应值,让它顺利绕过了滑块验证。代码,直接登录成功。
OpenCV 识别拼图验证码
拼图验证码是另一种网站登录验证机制,现在很常见。将拼图拖到图片上对应的缺口处,验证通过。
处理方法基本上是识别图片中缝隙的位置。如何识别,当然是各种计算机视觉的识别技术。
先生Zhou 使用 OpenCV 来识别间隙的位置并模拟鼠标拖动。当然,直接在源头使用mitmproxy解决验证码生成难题理论上是可行的,有兴趣的朋友可以试试。
浏览器扩展配合加密狗处理密钥
我在工作中遇到了网站,登录前需要完成两步:
没有其中之一就无法登录,并且您登录的IP不能更改太频繁。断线太频繁的结果就是重新登录。
面对这个网站,周老师居然针对不同的需求提出了几种解决方案。一是账号数量有限,用户数量不限。这个程序的最终产品是一个“免登录浏览器”,感兴趣的朋友可以查看这个文章。
另一个解决方案是自动登录和采集。
网站和采集的自动登录其实很简单。使用Selenium初始化驱动时,添加浏览器扩展的参数,登录需要的浏览器网站添加扩展即可。
但是很多朋友不知道Selenium驱动的浏览器可以加载浏览器扩展。
这个方法也适用于可以借助浏览器扩展获取的数据,比如某宝的XX参数网站。借助一些浏览器扩展,可以恢复索引数据的一些真实值。通过该方法,您可以自动登录并下载恢复的数据表。
终于
先生国家进行数据采集的对象多为电商领域内部的网站和平台,很多小伙伴面对的是公共领域的数据采集可能不太一样,但是没关系。数据采集没有设置,有的只是花招。
你在数据中使用过什么“绝招”吗采集?