抓取网页数据违法吗(北京交通管理培训机构--生命不休狮子(工程师))
优采云 发布时间: 2021-11-22 16:16抓取网页数据违法吗(北京交通管理培训机构--生命不休狮子(工程师))
我的个人信息:
我出生于1992年,在10级三流本科专业学习软件工程。2013年10月开始实习,大量时间在中小型互联网公司工作,主要从事java研发。. 更精准的职责是数据的实现。
总的来说,我还没有完全离开母校的爪子。我没有算法行业的低级预研专家,和项目十多年的狮子(工程师)的深厚内功。战术,但我是一个热爱互联网行业的编码员。哪怕留下一点足迹,我也会坚持这条路。
我的个人愿望:
我希望有研究或对数据采集感兴趣的人可以一起讨论技术、工程和爱好。谢谢!
最近,我开始采集一些数据。不知道业内有哪位大牛曾经说过:只要是网页上能看到的东西,就可以获得。这只是一个困难的问题。
互联网就像一个充满神秘色彩的大网络,无数的行业、无数的机会、无数的用户、无数的信息(数据)……在上面滚滚泛滥,充满了无数的财富和能量。带给人们也是不可想象的。
我有一个想法,捕捉不同网站的近期数据,接下来会分析捕捉一些
对在线数据进行排序和归档。久而久之,就会走上一条数据采集之路。您也可以咨询、讨论和分享。人生无止境,学习无止境!
零。数据采集的背景信息:
北京市交管官网:
左栏有“车辆违章查询”模块
测试数据:北京(车牌号+发动机号)
这似乎是隐私,不方便透露。所以如果你有车,你可以用你自己的数据来测试。
一、分析要爬取的站点
如果要使用程序自动获取某个站点的数据,第一步当然是手动分析站点结构,数据生成的步骤,以及限制自动化的手段等等,这些信息会有所帮助后续实现自动化。. 知己知彼,百战不殆!
这里我个人推荐的是,一定要掌握Chrome(谷歌浏览器)的使用来分析网站。能够熟练地使用这个工具,不仅会受益于数据采集的方法,还会对你的前端技术有一定的了解。,系统架构设计有一些学过的知识。积累才是王道!
首先,手动完成正常的查询过程:
图1-首页查询窗口
在chrome浏览器中按F12键启动chrome内置的开发者调试工具。
可以看到页面的一些信息,比如html源代码、页面元素结构树、css样式分布等。
图2-chrome开发者调试工具截图
言归正传,更多的chrome使用规则和细节不是我们讨论的重点,这些内容要经常掌握和使用才能精通。如有需要,会专门写博文,供日后分享讨论。
输入正确信息后点击“查询”按钮,
页面跳转到这个地址。
图3-验证码输入页面
到这里就可以清楚的看到网页的限制和自动化情况,大致流程也能搞清楚。
需要点击“点击获取验证码”按钮才能看到验证码,验证码是比较难的验证。刷新几次,发现是关于驾驶车辆的。
(真是一个缠绵的“主题一”题型~~)O(∩_∩)O~
打开调试工具(F12),选择“网络”按钮,选择调试工具的网络请求监控模块,再次刷新页面,可以看到刷新或访问请求,你发出的URL请求浏览器信息。
左栏框有很多jsp服务器脚本、css文本样式、js浏览器脚本、jpg(png)图片、多媒体等文件的请求。单击第一个 wzcx_preview.jsp 并选择右侧的 Header 选项。请参阅此“主要请求”提交的信息。如图所示:
图4-验证码页面分析
稍微熟悉http请求的人很容易发现,这个验证码页面居然收到了我们之前填写的城市(sf)-11、车号(carno)-XXXXXX和*敏*感*词*号。(Fdjh)-XXXXX。
所以可以判断第一个表单页面根本不需要。进一步发现,当在该页面点击“点击获取验证码”按钮时,“网络”左栏下方发送了一个新的请求,请求获取验证码图片数据。点击这个请求查看相关的Header信息,发现请求头信息中收录了上次访问jsp页面生成的cookie信息。并且经过有效验证后,将图片内置会话中的验证码答案绑定到本次访问的cookie值上,通过cookie中保存的值来验证用户输入的验证码的正确性,然后进行后续访问可以进行操作。
图5-获取验证码的请求信息
(有效验证:我猜如果我没有访问过jsp页面,而是直接以GET方式请求验证码,测试结果是YzmImg?t=XXXXX请求会响应set-cookie,没有对应的cookie,即就是,设置一个cookie,这也印证了我刚才的结论。)
最终确认我的“网站系统绑定了会话中的验证码答案和用户的cookie来访问会话”。活动总结如下:
当我右击“YzmImg?t=XXXX”选择“在新标签页中打开”时,只显示一个验证码图片,然后F12调试不断刷新,发现验证码图片一直在变化,但是cookie是没有变化的,那么比如原来jsp验证码输入页面的验证码是“显示”,现在我新打开的标签页的验证码在无数次刷新后变成了“通过”,那我输入“在jsp页面”“通”是正确的。从头到尾,服务器端会话中记录的都是这个cookie请求的最新验证码应答。
接下来输入正确的验证码,点击查询,进入主页面,同理,F12调试页面,分析发送的URL请求。
现在,我们来分析一下最后一个信息主页的请求情况。从下图可以清楚地看出,最终是一个带有多个分支请求的动作请求。现在我们只看这个主要的请求“getWzcxXx.action”。
图6-最终信息展示页面的请求结构
图7-动作请求的头部信息
在Form Date一栏可以清楚的看到Request Header的表单提交数据和cookie设置参数。
大体的网站结构和请求逻辑基本清晰。完成最重要的一步后,剩下的就很容易处理了。
我用的是java语言,使用httpclient jar包或者原生网络连接类或者spring XXXTemplate类都可以!
在文章的最后,如果你有任何想要捕捉的网站,或者难以分析的网站,你可以告诉我,我会检查.