您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

学习爬虫前需要了解哪些基础知识

时间:2019-10-18 15:56:52  来源:  作者:
学习爬虫前需要了解哪些基础知识

 

 


 

一、字符串知识点:

bytes:二进制(互联网上数据都是以二进制的方式传输的)

str:unicode编码的呈现形式,常用的实现方式是UTF-8

str转换为bytes的方法:encode()

bytes转换为str的方法:decode()


二、HTTP与HTTPS知识点:

HTTP:超文本传输协议,默认端口号80,性能更好

HTTPS:HTTP+SSL(安全套接字层),默认端口号443,安全性更好


三、爬虫的概念与流程:

爬虫是模拟浏览器发送请求,获取响应

url-->发送请求-->获取响应-->提取url-->提取数据-->保存


四、url的形式:

scheme:协议(http,https,ftp)

host:服务器的IP地址或者域名(www.baidu.com)

port:服务器的端口(80或者443)

path:访问资源的路径,百度搜索爬虫(/s?wd=爬虫&rsv_spt=1&rsv_iqid=0x8d278b16000116e5&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=9&rsv_sug1=8&rsv_sug7=100&rsv_sug2=0&inputT=1138&rsv_sug4=2397)

query-string:参数,发送给http服务器的数据

anchor:锚(跳转到网页的指定锚点位置)

完整的url例子:

https://www.baidu.com/s?wd=爬虫&rsv_spt=1&rsv_iqid=0x8d278b16000116e5&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=9&rsv_sug1=8&rsv_sug7=100&rsv_sug2=0&inputT=1138&rsv_sug4=2397


五、HTTP请求头:

打开F12,点击Network,在ALL列表找到访问的Host,查看request-Headers。

Host:主机和端口号

connection:链接类型

Upgrade-Insecure-Requests:一般为1,升级为HTTPS请求

User-Agent:浏览器名称,需要模拟这个

Accept:多个传输文件类型

Accept-Encoding:文件编解码格式

Accept-Language:支持的语言类型


六、响应状态码:

200:成功

302or307:临时转移至新的url

404:相应失败

500:服务器内部错误


七、爬虫基础知识点

1、爬虫是什么:

抓取网页数据的程序。

2、爬虫怎么抓取网页数据:

网页都有自己唯一的URL(统一资源定位符)来进行定位。

网页都是用html(超文本标记语言)来描述页面信息。

网页都是使用HTTP/HTTPS(超文本传输协议)协议来传输HTML数据。

①、首先确定需要爬取的网页URL地址。

②、通过HTTP/HTTPS协议来获取对应的HTML页

③、提取HTML页面里面有用的数据(反复精练处理数据得到目标数据)。

3、如何抓取HTML页面:

①、HTTP请求的处理,urllib、urllib2、requests

②、处理后的请求可以模拟浏览器发送请求、获取服务器响应的文件。

③、解析服务器相应的内容:re,xpath、jsonpath、pyquery等。

使用某一种描述性来给我们需要的数据定义一个匹配规则,

符合这个规则的数据就会被匹配。比如常用的re,正则表达式。

④、如何采集动态HTML、验证码的处理。

通常的动态页面采集:Selenium+PhantomJS(无界面):模拟真实浏览器加载js等非静态数据。

机器学习库,机器图像识别系统:Tesseract,可以处理简单的验证码,复杂的交给打码平台

⑤、Scrapy框架:(Scrapy,Pyspider)

高定制性、高性能(异步网络框架twisted):速度下载快,提供数据存储,数据下载,提取规则等组件。

⑥、分布式策略:scrapy-redis,以Redis数据库为核心的一套组件

让Scrapy框架支持分布式的功能,主要在Redis里做请求指纹去重、请求分配、数据临时存储。

⑦、爬虫-反爬虫-反反爬虫:爬虫最难的就是网站另一边的反爬虫人员。

User-Agent、代理、验证码、动态数据加载、加密数据等。

数据价值是否值得费劲做爬虫,机器成本+人力成本>数据价值,一般能爬出来。



Tags:爬虫   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
利用Python实现中国地铁数据可视化。废话不多说。让我们愉快地开始吧~开发工具Python版本:3.6.4相关模块:requests模块;wordcloud模块;pandas模块;numpy模块;jieba模块;pyecharts模...【详细内容】
2021-12-08  Tags: 爬虫  点击:(34)  评论:(0)  加入收藏
这个开源项目程序可以持续爬取一个或多个新浪微博用户(如李文di、无疫烦)的数据,并将结果信息写入文件或数据库。写入信息几乎包括用户微博的所有数据,包括用户信息和微博信息两大类。...【详细内容】
2021-10-27  Tags: 爬虫  点击:(43)  评论:(0)  加入收藏
今天我们仍旧利用scrapy框架实现自动翻页爬取数据,爬取诗词胖排行榜( https://www.shicimingju.com/paiming)中的标题。1.新建文件夹scrapy starproject 文件名(wallpaper)2.新建...【详细内容】
2021-10-21  Tags: 爬虫  点击:(62)  评论:(0)  加入收藏
回顾python学习历程,感慨良多,这门语言实在是太强了,当然,分支也很多,有的在做安全,有的在做数据,有的在做爬虫,本文就笔者本身的爬虫入门的小经验分享给读者,期待各位在学习python的...【详细内容】
2021-08-11  Tags: 爬虫  点击:(81)  评论:(0)  加入收藏
来源:Python数据之道作者:Peter整理:阳哥大家好,我是阳哥。今天来跟大家分享用 BeautifulSoup 获取信息的一些知识点,文章内容由公众号读者 Peter 创作。欢迎各位童鞋向公众号投...【详细内容】
2021-06-23  Tags: 爬虫  点击:(134)  评论:(0)  加入收藏
上次写的如何给小孩约马术课过程,见这里 Python 约课[1], 本想一劳永逸,但是好景不长,预约系统升级了,而且还换了服务商,从之前的公众号 H5 应用,换成了小程序,之前编写的方式直接失...【详细内容】
2021-05-07  Tags: 爬虫  点击:(262)  评论:(0)  加入收藏
众所周知,代理IP可以助力爬虫工作更好的进行,很多人认为:如果没有代理IP,爬虫工作寸步难行。那么,如果爬虫不使用代理IP会出现什么情况呢? 一、小型爬虫:可有可无爬几百篇文章,几百...【详细内容】
2021-05-07  Tags: 爬虫  点击:(157)  评论:(0)  加入收藏
前言 将爬虫的爬取过程分为网络请求,文本获取和数据提取3个部分。 信息校验型反爬虫主要出现在网络请求阶段,这个阶段的反爬虫理念以预防为主要目的,尽可能拒绝反爬虫程序的请...【详细内容】
2021-04-20  Tags: 爬虫  点击:(452)  评论:(0)  加入收藏
导读:Scrapy由Python语言编写,是一个快速、高层次的屏幕抓取和Web抓取框架,用于抓取Web站点并从页面中提取出结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试...【详细内容】
2021-04-13  Tags: 爬虫  点击:(335)  评论:(0)  加入收藏
在了解爬虫基础、请求库和正则匹配库以及一个具体豆瓣电影爬虫实例之后,可能大家还对超长的正则表达式记忆犹新,设想如果想要匹配的条目更加多那表达式长度将会更加恐怖,这显然...【详细内容】
2021-04-12  Tags: 爬虫  点击:(262)  评论:(0)  加入收藏
▌简易百科推荐
本文分为三个等级自顶向下地分析了glibc中内存分配与回收的过程。本文不过度关注细节,因此只是分别从arena层次、bin层次、chunk层次进行图解,而不涉及有关指针的具体操作。前...【详细内容】
2021-12-28  linux技术栈    Tags:glibc   点击:(3)  评论:(0)  加入收藏
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(2)  评论:(0)  加入收藏
程序是如何被执行的  程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(10)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(20)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(25)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(25)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条