0
点赞
收藏
分享

微信扫一扫

爬虫第一课


爬虫入门

从今天开始让我们一起来学习一些爬虫的相关知识吧!这也是我在这个平台上第一次写博客来记录学习过程。有错误请大家多多指教!接下来就让我们一起开始吧!!!

(一) 什么是爬虫

1.1 爬虫的概念
爬虫用于爬取数据,又称为数据采集程序。
爬虫的数据来源于网络,而网络的数据可以有web服务器,数据库服务器云存储等等来提供。
注:利用爬虫去爬取数据当然要是合法的啦,比如你要爬取的数据必须是公开的而且是非盈利的。
1.2. python的爬虫
使用python编写的爬虫脚本(程序)可以完成定时,定量,指定目标(web站点)的数据爬取。主要使用多(单)线程/进程,网络请求库,数据解析,数据存储,任务调度等相关技术。
python爬虫工程师可以完成接口测试,功能性测试和集成测试。

(二 )爬虫与web后端服务之间的关系

爬虫使用网络请求库,相当于客户端请求,web后端服务器根据请求响应数据。(如下图)

爬虫第一课_爬虫

爬虫即向web服务器发起HTTP请求,正确的接受响应数据,然后根据数据的类型(Content-Type)来进行数据解析和保存。

爬虫程序在发送请求前需要伪造浏览器(User-Agent指定请求头),然后再向服务器发起请求。

(三)Python爬虫技术的相关库

网络请求:

  • urllib
  • requests
  • selenium(UI自动测试,动态js渲染)
  • appium(手机app的爬虫或UI测试)

数据解析:

  • re正则
  • xpath
  • bs4
  • json

数据存储:

  • pymysql
  • mongodb
  • elasticsearch

多任务库:

  • 多线程(threading)/线程队列(queue)
  • 协程(asynio,gevent/eventlet)

爬虫框架:

  • scrapy
  • scrapy-redis分布式(多机爬虫)

(四)常见的反爬虫策略

  • UA(User-Agent)策略
  • 登录限制(cookie)策略
  • 请求频次(IP代理) 策略
  • 验证码(图片-云打码,文字或物件选择,滑块等)策略
  • 动态js(selenium/splash/api接口)策略


举报

相关推荐

0 条评论