抓取网页数据违法吗(北京交通管理培训机构--生命不休狮子(工程师))

优采云 发布时间: 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类都可以!

  在文章的最后,如果你有任何想要捕捉的网站,或者难以分析的网站,你可以告诉我,我会检查.

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线