欢迎来到源码交易网,为站长提供交易担保服务 访问移动版
站长交易首选担保平台!
酷客淘

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

日期: 2019-10-19 11:08:30 人气: -

一、字符串知识点:

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、代理、验证码、动态数据加载、加密数据等。


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