数据科学、数据分析、人工智能必备知识汇总-----Python爬虫-----持续更新

数据科学、数据分析、人工智能必备知识汇总-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/140174015

一、基本配置和基础知识

初期准备
  1. 安装ipython:进入python安装目录,进入Scripts文件夹,在这个文件夹进入cmd,执行pip install ipython命令即可安装
    在这里插入图片描述
  1. 如果出现如下提示,就进入python安装目录,打开cmd执行它所提示的命令
    在这里插入图片描述
    在这里插入图片描述
  2. 为了保险起见,可以重新按照上面的步骤安装ipython,安装成功后,scripts文件夹会多出我们安装的脚本
    在这里插入图片描述
  3. 如果安装的包太多,也可以选择执行pip list命令查看安装的包
    在这里插入图片描述
2. 修改pip下载源
  1. 直接使用pip install命令会从默认的https://files.pythonnhosted.org/网站进行下载,这个是国外的网站,会比较慢
  2. 我们只需要在命令后面加上 -i 国内源地址即可
pip install 包名 -i 国内源地址
#例如
pip install ipython -i https://pypi.mirrors.ustc.edu.cn/simple/
# 其中,常用国内源地址有
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
设置模版
  1. 打开Pycharm软件,在设置中的Editor中的File and Code Templates选择.py文件,为其设置模版
    在这里插入图片描述
  2. 每次我们创建.py文件时,会自动将其添加
# _*_ coding : utf-8 _*_
# @Time : ${DATE} ${TIME}
# @Author : Taylor Sinclair(殷志鹏)
# @File : ${NAME}
# @Project : ${PROJECT_NAME}
# @Description : 在这里书写本文件的作用
什么是爬虫

在这里插入图片描述

如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的数据

  1. 通过一个程序,根据Url(http://www.taobao.com)进行爬取网页,获取有用信息
  2. 使用程序模拟浏览器,去向服务器发送请求,获取响应信息
我们需要研究哪些问题
  1. 爬取网页:爬取整个网页,包含了网页中所有内容,这是你必须会的一步
  2. 解析数据:将网页中你得到的数据,进行解析。上一步爬取到的整个网页的数据,我们并不是全部都需要,此时需要将我们需要的数据解析出来
  3. 难点:爬虫和反爬虫之间的博弈。反爬虫就是你找他要数据,他不给你。而我们搞爬虫的如果让他给你数据呢?核心就是找到他不给你数据的原因,只要找到了这个,在爬虫时将其解决,就会给你数据了

例如我们要爬取一个网站的数据,这个网站不给你爬,因为你不是系统开放成员,他需要你有一个内部账号才能访问数据,此时你唯一的办法就是获取内部账号。

爬虫的用途
  1. 数据分析/人工数据集:因为这些工作是建立在数据之上的,而爬虫是获取数据的有效手段
  2. 社交软件冷启动:有些社交软件初期用户不多,会通过爬虫爬取一些其它大社交网站的数据,将这些数据生成为假用户,让我们的社交软件显得不那么冷清清的。
  3. 舆情监控
  4. 竞争对手监控
  5. 下图是前几年爬虫很火的时候,大家写爬虫程序爬取数据的行业占比,可以发现出行数据和社交数据是重灾区
    在这里插入图片描述
爬虫的分类
  1. 通用爬虫:我们不会学习这个,因为这些数据大部分是无用数据
  1. 使用通用爬虫的实例有: 百度、360、google、sougou等搜索引擎‐‐‐伯乐在线。细心的人可以发现,使用这些搜索引擎搜索东西的时候,重复率很大。而且谁花钱谁放在前面
  2. 功能: 访问网页‐>抓取数据‐>数据存储‐>数据处理‐>提供检索服务
  3. robots协议: 一个约定俗成的协议,添加robots.txt文件,来说明本网站哪些内容不可以被抓取,起不到限制作用.自己写的爬虫无需遵守
  4. 网站排名(SEO):这个也是通用爬虫获取数据大部分是无用数据的原因
  1. 本来网站排名应该是根据pagerank算法值进行排名(参考个网站流量、点击率等指标)
  2. 而现在的搜索引擎基本上就是百度竞价排名这一套,你去百度,前面的数据都是广告,非常影响我们的体验
  1. 缺点
  1. 抓取的数据大多是无用的
  2. 不能根据用户的需求来精准获取数据
  1. 聚焦爬虫:这是我们要研究的重点
  1. 功能: 根据需求,实现爬虫程序,抓取需要的数据
  2. 设计思路
  1. 确定要爬取的url。需要研究如何获取Url
  2. 模拟浏览器通过http协议访问url,获取服务器返回的html代码。需要研究如何访问
  3. 解析html字符串(根据一定规则提取需要的数据)。需要研究如何解析
反爬手段
  1. User‐Agent:中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等

这是我们爬虫的第一道大关,简称UA校验,简单来说,如果我们不做特殊处理,他能识别到我们是假数据,而不是真实的用户

  1. 代理IP:试想一下,你一个ip一秒钟点击一个网站200次,这显然不是人类用手能干出来的操作。如果你对网站的操作是异于人类的,那么我会封掉你的ip,让你无法进行访问
  1. 西次代理
  2. 快代理
  3. 什么是高匿名、匿名和透明代理?它们有什么区别?
  1. 使用透明代理,对方服务器可以知道你使用了代理,并且也知道你的真实IP
  2. 使用匿名代理,对方服务器可以知道你使用了代理,但不知道你的真实IP。
  3. 使用高匿名代理,对方服务器不知道你使用了代理,更不知道你的真实IP。
  1. 验证码访问:现在基本上大部分平台都有验证码校验了,有效限制大家爬虫,因为有验证码,你在登录的时候就已经有难度了
  1. 打码平台
  2. 云打码平台
  3. 超级老鹰
  1. 动态加载网页:网站返回的是js数据,并不是网页的真实数据。这种数据让我们很难爬取有效信息

selenium驱动真实的浏览器发送请求

  1. 数据加密:将数据加密后返回给你,尤其是ssh加密的,你没有密钥很难解开,这种数据如果你不是内部人员还是不要爬取的好,但是有些网站明明数据不重要,还搞这一出,我们就可以通过分析进行解密爬取

分析js代码

二、Urllib库

由于篇幅原因,我将其放在另一篇文章中:https://blog.csdn.net/grd_java/article/details/140589367

根据请求将数据爬取下来

三、解析库

由于篇幅原因,我将其放在另一篇文章中:https://blog.csdn.net/grd_java/article/details/140625643

爬取到数据后,里面的大部分数据是我们不需要的,我们要对其进行解析,定位我们需要的数据,将其提取出来

四、Selenium

由于篇幅原因,我将其放在另一篇文章中:https://blog.csdn.net/grd_java/article/details/140770543

前面都是用程序去模拟请求获取数据,而这个可以让我们操作真实浏览器去获取数据,不光如此,谷歌浏览器还提供无窗口模式(没有浏览器界面,但是操作了真实的浏览器)

五、request

由于篇幅原因,我将其放在另一篇文章中:
  • 35
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

殷丿grd_志鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值