用一周的时间翻完了python网络数据采集,在此整理一下。

0x000数据采集

数据采集是一个很宽泛的概念,总的来说应该包含以下部分。
选择采集目标源–>组织构建数据库–>编写爬虫–>数据清洗–>数据整理–>存入数据库,一般情况下选择目标源和构建数据库是其中的主要元素。目标源决定你收集到数据的可用性,爬虫决定你的计划是否可达。

0x001目标源选择

个人感觉目标源选取应按照以下条目进行排序:数据相关性 、易爬取程度、数据量、robots协议,当然根据自己需求可以灵活变动。同等情况下尽量避免大型企业的官网,因为其中大部分都具备反爬策略(当然有时间可以选择以下,这个斗智斗勇的过程挺锻炼的

0x010爬虫

推荐使用的库有Requests、BeautifulSoup、scrapy、selenium
如果对于效率需求不是特别高,可以考虑使用Requests post请求搜集页面,然后使用BeautifulSoup分析页面标签,这样实现较为简单,也能解决大部分需求。
如果对效率比较重视,或需要完成一个工程化的采集项目,Scarpy可以作为首选。对分布式处理的良好支持和清晰的模块化层次在提升效率的同时更易于进行代码的管理。
对http的相关请求,使用requests比用其他库函数更加明智。
如果你处理的页面大量使用了js或者存在验证码 处理过程就比较麻烦了 不过selenium仍然可以解决你大部分需求。

0x011数据清洗

因为种种原因,我们获得的数据和期望中的总有一定的差别,这一部分的任务就是消除异常数据将其转换为易于处理的形式。
数据的异常主要包括:数据格式异常和数据内容异常。
你需要的数据可能存储于一个PDF、word、jpg格式的文件中,将它们转换成文本然后提取相应的信息是数据清洗工作的一部分。对这部分我们可以使用Python的Pillow、Tesseract、NumPy来进行相关的处理,当然利用第三方接口也是个不错的主意。
另外,因为网页发布者的疏忽,网页上有部分数据和其他页面呈现不同,但你可能把这部分数据也爬取下来。这时你需要进行一定的处理将数据格式进行统一。

0x100反爬虫

这部分是爬虫中最有意思的部分,你需要与对方斗智斗勇,很可能你还没有想好怎么绕过他的机制,对方又对反爬机制进行了更新。97年eBay和Bidder’s Edge之间的爬虫与反爬虫策略为后来的数据采集者和运维工程师提供了不少示例,但现今html的迅速发展,似乎对双方也有不小的提示。
目前常见的反爬虫机制主要有如下几种:
1.验证码
从最基础的字符识别验证码,到后来文字验证码,表达式验证码,滑动验证码。虽然层次多样,但处理机制大概相同,最基础的应用一些计算机图形学的知识就可以解决,深层次的利用机器学习训练相关识别软件也能破解。12306的图片相关性验证码主要基于数据的深度拓扑,但是其对于人类本身也是一个不小的挑战,特别是在抢票的时候突然让你选出下图中所有的Lan口,除非你对计算机硬件有所了解,不然选出正确答案确实不易。但是其也有一定的破解方案,仍然利用图像识别结合用户反馈,似乎铁友有一段时间推出过一个大众活动,使用手机帮助进行图像标识,用白菜价获得了数百万标记好的数据,在后来的购票中只能选择相应的验证码。
2.表单隐藏内容
有些页面表单会向用户隐藏一些信息,如果你使用爬虫不加以区分而填写了相应的字段,很可能会被对方直接判为一个爬虫,然后进行ip封禁。
3.页面数据显示处理
有些页面会将数据进行重排组成正确的数据。如果你在爬取过程中没有注意也只能得到一些毫无价值的内容。

Emmm…
本来想弄一个验证码识别的小程序 但发现使用Python的Tesseract还需要自己标注一些数据 但本意是弄一个自动训练的识别工具 所以暂时搁置 等以后有了相关想法再开始动工
菜鸡还是要继续努力啊…

爬虫--网络数据采集相关推荐

  1. python手绘效果图_2020高校邦《马克笔手绘效果图》判断题答案2020高校邦《网络数据采集与Python爬虫(山东大学定制班级)》见面课测试答案...

    2020高校邦<马克笔手绘效果图>判断题答案2020高校邦<网络数据采集与Python爬虫(山东大学定制班级)>见面课测试答案 更多相关问题 工程项目竣工验收.交付使用,应达到 ...

  2. 网络数据采集基础(一) ---认识爬虫

    网络数据采集基础(一) 基础引入 1. 爬虫是什么? 2. HTTP/HTTPS请求与响应 **3. 抓包/抓包工具Fiddler.wireshark使用方式 ** 4. urllib2(Python ...

  3. Python 网络爬虫与数据采集(二)

    Python 网络爬虫与数据采集 第二部分 初章 网络爬虫初识 4. 网络爬虫请求篇 4.1 requests 库简介 4.1.1 Requests 的安装 4.1.2 Requests 基本使用 4 ...

  4. Python爬虫初学二(网络数据采集)

    目录 一.网络数据采集 1.什么是网络数据采集 2.网络数据采集的特点 二.网络数据采集之urllib库 三.网络数据采集之requests库 1.requests安装 2.request方法汇总 3 ...

  5. 笨办法学Python(第四版)最新版+Python爬虫开发与项目实战+Python网络数据采集+精通Scrapy网络爬虫

    笨办法学Python(第四版)最新版+Python爬虫开发与项目实战+Python网络数据采集+精通Scrapy网络爬虫 本资料为最新整理高清带目录pdf,百度网盘下载~~~ 本资料为最新整理高清带目 ...

  6. python数据采集框架_20190715《Python网络数据采集》第 1 章

    <Python网络数据采集>7月8号-7月10号,这三天将该书精读一遍,脑海中有了一个爬虫大体框架后,对于后续学习将更加有全局感. 此前,曾试验看视频学习,但是一个视频基本2小时,全部拿下 ...

  7. 网络数据采集(AngleSharp)-使用AngleSharp做html解析

    有这么一本Python的书: <<Python 网络数据采集>> 我准备用.NET Core及第三方库实现里面所有的例子. 这是第一部分, 主要使用的是AngleSharp:  ...

  8. Python网络数据采集系列-------概述

    这是一个正在准备中的系列文章,主要参考的是<Web Scraping with Python_Collecting Data from the Modern Web-O'Reilly(2015) ...

  9. Python 网络数据采集(三):采集整个网站

    Python 网络数据采集(三):采集整个网站 1.采集整个网站 2. 完整代码 3. 下一节,继续优化这个"爬虫"程序 参见  作者:高玉涵  时间:2022.5.30 15:3 ...

  10. 互联网成数据宝库,网络数据采集技术推动人工智能发展

    文章来源:探码科技 算法.算力.数据是人工智能发展的三大要素,人工智能已经从讲技术教育市场的阶段,过渡到思考如何将技术与商业相结合落地的阶段,而数据作为Al算法的"燃料",是实现这 ...

最新文章

  1. 物体分割--Deep Watershed Transform for Instance Segmentation
  2. 《Redis设计与实现》简读
  3. 【Linux 内核】CFS 调度器 ⑥ ( CFS 调度器就绪队列 cfs_rq | Linux 内核调度实体 sched_entity | “ 红黑树 “ 数据结构 rb_root_cached )
  4. VMware与Centos7系统安装
  5. Kali获取不到IP解决方案
  6. SAP Gateway OData服务的语言决定逻辑 - language determination
  7. FlexPod上安装vSphere 5.5配置中的排错(1)
  8. Antd Table树形展示,分页后有时候数据渲染不出的问题
  9. python 遍历字典嵌套_Python 字典嵌套循环遍历
  10. 2018-03-28 从人机交互角度看中文编程:#39;打开微信#39;
  11. [deviceone开发]-多种样式下拉菜单demo
  12. 计算机英语词汇论文,【计算机英语论文】计算机英语词汇教育思索(共2137字)
  13. 高品质UI设计模板PSD下载,设计师的最佳临摹素材
  14. iframe之间操作记录
  15. 语法比较:Julia,Matlab,Python
  16. C++调用C#编写的DLL【转】
  17. 《算法笔记》的codeup打不开怎么办
  18. 大写1234(大写123456汉字)
  19. 肠道微生物群与过敏性鼻炎
  20. MATLAB复数相关运用

热门文章

  1. radon变换的原理-通过直线方程式的计算来检测出直线
  2. WPS简历模板的图标怎么修改_个人求职简历模板怎么选 5000套简历模板领取
  3. 向日葵显示无法连接到服务器,请修复电信卡使用向日葵远程无法连接服务问题!!!...
  4. php脚本是什么,PHP脚本的编写
  5. HTTPS是如何保证数据传输安全的?
  6. 最详细的vs2015使用教程(有图)
  7. 如何制作伪原创视频?呆头鹅批量视频剪辑软件一键处理10万个视频
  8. python3.8安装pyltp
  9. 五、OpenCV-python 之图像处理(Ⅲ)——傅里叶变换
  10. BS和CS架构的区别