数据爬虫与标注

1、如何看懂网页

在这里插入图片描述
网页的构成:
通常来说网页由三部分组成,分别是HTML, CSS , Javascript,下面我们分别介绍这三个部分。

1.1HTML

HTML是HyperText Mark-up Language的首字母简写,即超文本标记语言。
HTML不是编程语言,而是一种标记语言。超文本指的是超链接,标记指的是标签
所以HTML由一个个标签组成
在这里插入图片描述

1.2 CSS

CSS指层叠样式表,用来定义如何显示控制HTML元素

1.3 Javascript

HTML与CSS只能够显示静态页面,缺乏交互性。我们在网页中看到的轮播图等动态效果就是由Js来完成的。它的出现使得用户与信息之间不只是一种浏览与显示的关系,而是实现了一种实时、动态、交互的页面功能。

2.什么是网络爬虫

网络爬虫是一种按照-定的规则,自动的抓取互联网信息的程序或脚本。
爬虫在主要是在我们面对新任务,而我们又缺少数据的时候所使用的一种获取数据的手段。
如果我们没有数据,就可以通过爬虫从网络上抓取。
因此我们有必要去掌握一定的爬虫基础,以应对缺少数据的问题。

2.2 爬虫执行的过程

在这里插入图片描述

3.爬虫需要掌握的知识

3.1数据抓取

在爬虫实现上,除scrapy框架外, py还有很多相关库可供使用。其中,在数据挖掘方面包括: urllib(3)、 request、 mechanize、 selenium、 splinter ;
其中urlib、request、 mechanize用来获取URL对应的原始响应内容;而selenium、splinter通过加载浏览器驱动,获取浏览器渲染之后的响应内容,模拟程度更高;
考虑效率,能用urlib等解决问题最好。(ajax后加载的内容一 般需要selenium、splinter)

3.2数据解析

在数据解析方面,相应的库包括: lxml、beautifulsoup4、 re、 pyquery。 对于数据解析,主要是从响应页面里提取所需的数据,常用方法有: xpath路径表达式、CSS选择器、正则表达式等。

其中, xpath路径表达式、CSS选择器主要用于提取结构化的数据。而正则表达式主要用于提取非结构化的数据。

数据抓取: HTTP , Cookie ; Fiddler , Burpsuit
数据解析:JSON,XML数据格式;python解码,编码
数据入库: MySQL ; Redis
其他:多线程,任务调度,分布式爬虫,图像识别

4.如何快速实现爬虫

4.1Urlib介绍

在Python2版本中,有urlib和urlib2两个库可以用来实现request的发送。
●而在Python3中,已经不存在urlib2这个库了,统一为urlib.
●Python3 urllib库官方链接: https://docs.python.org/3/library/urlib.html
●urlib中包括了四个模块,包括:
urlib.request :可以用来发送request和获取request的结果
urllib.error :包含了urlib.request产性的异常
urllib.parse :用来解析和处理URL
urllib.robotparse :用来解析页面的robots.txt文件

4.2如何快速实现一个图片爬虫

urlib.request模块提供了最基本的构造HTTP请求方法,可以模拟浏览器的一个请求发起过程。同时它还带有处理authenticatco(授权验证) redirecticns(重定向),cookies(浏览器Cookies)以及其它内容。
urlib.request.urlopen(url data= None, [timeout, ]*, cafile=None, capath= None,cadefault= False, context=None)
参数: ur|地址
data :可选附加参数,字节流编码格式( bytes(可转换) ,请求方式会变为POST
timeout (超时时间)单位为秒,若请求超出了设置时间还没有响应,则抛异常
返回HTTPResposne类型的对象:
response.read0就可以得到返回的网页内容,可使用decode("utf-8’ )解码字符串
response,status就可以得到返回结果的状态码,如200代表请求成功, 404代表网页未找到
在这里插入图片描述

4.3如何快速实现-个文本爬虫

利用urlopen(方法可以实现最基本的请求发起,但这几个简单的参数并不足以构建一个完整的请求。
●使用强大的Request类可以在请求中加入需要的headers等信息。

class urlib.request.Request(url, data =None, headers={}, origin_ req_ host= None,unverifiable= False, method= None)
●第一个参数是请求链接,这个是必传参数,其他的都是可选参数,data参数如果要传必须传bytes (字节流)类型的,如果是一个字典,可以先用urlib.parse.urlencode()编码。
●headers参数是一个字典,你可以在构造Request时通过headers参数传递,也可以通
过调用Request对象的add_ header() 方法来添加请求头。
●origin_ req_ host指的是请求方的host名称或者IP地址。
●unverifiable指的是这个请求是否是无法验证的,默认是False。意思就是说用户没有足够权限来选择接收这个请求的结果
●method是一个字符串,它用来指示请求使用的方法,比如GET,POST,PUT等等。

在这里插入图片描述

标题5.优秀的开源爬虫工具

https://github.com/sczhengyabin/Image-Downloader
在这里插入图片描述

5.1通用视频爬虫

在这里插入图片描述

5.3复杂爬虫(flickr)

在这里插入图片描述
https://github.com/chenusc11/flickr-crawler
在这里插入图片描述

6.深度学习数据标注工具

1.LabelImg
2.LabelIme
3. OpenCV/CVAT
4. point-cloud- annotation-tool
文章推荐:https://zhuanlan.zhihu.com/p/90472628

6.1 LabelImg

https://github.com/tzutalin/labelImg
在这里插入图片描述

6.2 Labelme

https://github.com/wkentaro/labelme

在这里插入图片描述

6.3Opencv/CVAT

https://github.com/openvinotoolkit/cvat
在这里插入图片描述

6.5 point-cloud-annotation-tool

https://github.com/springzfx/point-cloud-annotation-tool
在这里插入图片描述

7.数据整理需要从哪些方面做起

归一化
去重
数据集划分

7.1归一化

●格式归一化
●类型归一化(方便遍历)
●去除损坏图片(防止读取失败)
●去除异常比例图像(长宽比例大于10 )
●命名归一-化(方便归类)

7.2去重

去重
●完全相同的图像
●遍历
●相似图像
●脚本(季划去重脚本)

7.3 数据集划分

●数据集划分
●训练/测试集(随机)
●难度等级(简单,中等,高级)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值