Python爬虫从入门到精通:(1)爬虫基础简介_Python涛哥

2023-10-29

第一章,爬虫基础简介

爬虫概述

前戏
  1. 你是否在夜深人静的时候,想看一些会让你更睡不着的图片…
  2. 你是否在考试或者面试前夕,想看一些具有针对性的题目和面试题…
  3. 你是否想在杂乱的网络世界获取你想要的数据…
爬虫的价值
  • 实际应用
  • 就业
什么是爬虫

通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程

  • 关键词抽取:
    • 模拟:浏览器就是一个纯天然最原始的一个爬虫工具
    • 抓取:
      • 抓取一整张页面源码数据
      • 抓取一整张页面中的局部数据
爬虫的分类
  • 通用爬虫:
    • 要求我们爬取一整张的页面源码数据
  • 聚焦爬虫
    • 要求爬取一张页面中的局部的数据
      • 聚焦爬虫一定是建立在通用爬虫基础之上
  • 增量式爬虫:
    • 用来检测网站数据更新的情况,以便爬取到网站最新更新出来的数据。
  • 分布式爬虫:
    • 提高爬虫效率的终极武器。
反爬、反反爬
反爬机制
  • 是作用到门户网站中。如果网站不想让爬虫轻易爬取到数据,它可以制定相关的机制或者措施阻止爬虫程序爬取数据。
反反爬策略
  • 是作用在爬虫程序中。我们爬虫可以制定相关的策略破击反爬机制从而爬取到相关的数据。
第一种反爬机制
  • robots协议:防君子不防小人

    • 是一个纯文本的协议,协议中规定了该网站中哪些数据可以被哪些爬虫爬起,哪些不可以被爬取。
  • 破解:

    • 你自己主观性的不遵从该协议即可。
爬虫究竟是合法还是违法?
  • 在法律上是不被禁止
  • 具有违法风险
  • 善意爬虫 恶意爬虫

爬虫带来的风险可以提现下如下两个方面

  • 爬虫干扰了被访问网站的正常运营
  • 爬虫抓取了收到法律保护的特定类型的数据或信息

如何在使用编写爬虫的过程中避免进入局子的厄运呢?

  • 时常的优化自己的程序,避免干扰被访问网站的正常运行
  • 在使用,传播爬取到的数据时,审查抓取到的内容,如果发现了涉及到用户隐私、商业机密等敏感内容,需要及时停止爬取或传播
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python爬虫从入门到精通:(1)爬虫基础简介_Python涛哥 的相关文章

  • 如何替换 Pandas Dataframe 中不在列表中的所有值? [复制]

    这个问题在这里已经有答案了 我有一个值列表 如何替换 Dataframe 列中不在给定值列表中的所有值 例如 gt gt gt df pd DataFrame D ND D garbage columns S gt gt gt df S 0
  • 在 Python 中解析 TCL 列表

    我需要在双括号上拆分以空格分隔的 TCL 列表 例如 OUTPUT 172 25 50 10 01 01 Ethernet 172 25 50 10 01 02 Ethernet Traffic Item 1 172 25 50 10 01
  • 如何传递架构以从现有数据帧创建新数据帧?

    要将 schema 传递到 json 文件 我们这样做 from pyspark sql types import StructField StringType StructType IntegerType data schema Stru
  • 类的 IPython 表示

    我正在使用我创建的模块尝试 IPython 但它没有显示类对象的实际表示 相反 它显示类似的内容 TheClass module TheClass name I heavily在这个模块中使用元类 我有真正有意义的类表示 应该向用户显示 是
  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • NLTK 2.0分类器批量分类器方法

    当我运行此代码时 它会抛出一个错误 我认为这是由于 NLTK 3 0 中不存在batch classify 方法 我很好奇如何解决旧版本中的某些内容在新版本中消失的此类问题 def accuracy classifier gold resu
  • 如何从Python中的函数返回多个值? [复制]

    这个问题在这里已经有答案了 如何从Python中的函数返回多个变量 您可以用逗号分隔要返回的值 def get name you code return first name last name 逗号表示它是一个元组 因此您可以用括号将值括
  • PyQt 使用 ctrl+Enter 触发按钮

    我正在尝试在我的应用程序中触发 确定 按钮 我当前尝试的代码是这样的 self okPushButton setShortcut ctrl Enter 然而 它不起作用 这是有道理的 我尝试查找一些按键序列here http ftp ics
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • 从 Powershell 脚本安装 Python

    当以管理员身份从 PowerShell 命令行运行以下命令时 可以在 Windows 11 上成功安装 Python c temp python 3 11 4 amd64 exe quiet InstallAllUsers 0 Instal
  • 无法导入 langchain.agents.load_tools

    我正在尝试使用 LangChain Agents 但无法导入 load tools 版本 langchain 0 0 27 我尝试过这些 from langchain agents import initialize agent from
  • python的shutil.move()在linux上是原子的吗?

    我想知道python的shutil move在linux上是否是原子的 如果源文件和目标文件位于两个不同的分区上 行为是否不同 或者与它们存在于同一分区上时的行为相同吗 我更关心的是如果源文件和目标文件位于同一分区上 shutil move
  • 如何将 ascii 值列表转换为 python 中的字符串?

    我在 Python 程序中有一个列表 其中包含一系列数字 这些数字本身就是 ASCII 值 如何将其转换为可以在屏幕上回显的 常规 字符串 您可能正在寻找 chr gt gt gt L 104 101 108 108 111 44 32 1
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • PySpark groupByKey 返回 pyspark.resultiterable.ResultIterable

    我试图找出为什么我的 groupByKey 返回以下内容 0
  • Python:Goslate 翻译请求返回“503:服务不可用”[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们不允许提出寻求书籍 工具 软件库等推荐的问题 您可以编辑问题 以便用事实和引文来回答 这个问题似乎不是关于主要由程序员使用的特定编程问
  • 在virtualenv中下载sqlite3

    我正在尝试使用命令创建应用程序python3 manage py startapp webapp但我收到一条错误消息 django core exceptions ImproperlyConfigured 加载时出错 pysqlite2 或
  • 根据 Pandas 中的列表选择数据框行的子集

    我有一个数据框df1并列出x In 22 import pandas as pd In 23 df1 pd DataFrame C range 5 B range 10 20 2 A list abcde In 24 df1 Out 24
  • JSON:TypeError:Decimal('34.3')不是JSON可序列化的[重复]

    这个问题在这里已经有答案了 我正在运行一个 SQL 查询 它返回一个小数列表 当我尝试将其转换为 JSON 时 出现类型错误 查询 res db execute SELECT CAST SUM r SalesVolume 1000 0 AS

随机推荐

  • Python:小球反弹

    问题描述 已知一球从高空落下时 每次落地后反弹至原高度的四分之一再落下 编写一程序 从键盘输入整数n和m 求该球从n米的高空落下后 第m次落地时共经过的路程以及第m次落地后反弹的高度 并输出结果 输入形式 从键盘输入整数n和m 输出形式 输
  • 毕业设计 基于python的网络爬虫-基于python的网络爬虫

    一 从小说网站抓取一本小说 import urllib2 python库 提供一系列针对url的操作方法 import re re正则表达式 提供了一系列针对正则表达式的方法 BeautifulSoup4库 from bs4 import
  • Android 日志分析01-命令篇

    我回来了 很久没更新博客了 各种原因吧 但现在我决定回归博客 继续写写文章 分享分享技术 用过很多语言 涉及前后端 一时也不知从何讲起 往后慢慢梳理吧 慢慢把自己想分享的东西写下来 也是一种整理和记录吧 今天先分享Android知识 分享一
  • automake创建Makefile

    autoconf automake主要用于创建makefile 本文主要介绍一下automake的简单用法 Ubuntu下安装automake sudo apt get install automake 即可安装automake的相关工具
  • win10安装Mathtype报错处理,找不到MPlugin.dll

    在Mathtype官方中文网下载mathtype后 双击exe文件进行安装 不使用默认安装路径 安装后会弹出如下错误 由于找不到MPlugin dll 无法继续执行代码 重新安装程序可能会解决此问题 查看mathtype的安装目录 可以发现
  • CSDN社区之星专访:我的蜕变之路

    摘要 社区之星第49期采访了爱奇艺研发总监陆其明 他分享了个人生涯 管理和程序员素养等方面的看法 管理上他认为对人要领导 要管的是事 而在程序员素养上 他则引用Jeff Atwood的话称 成为优秀程序员的方法就是抛开编程 原文链接 htt
  • SRNet:Deep Residual Network for Steganalysis of Digital Images

    Abstract 现有的网络架构包括手工设计元素 比如固定域或限制卷积核 关键 有效扩展检测器前端 计算噪声残差 池化会不可避免地压制隐写噪声 在频域中有一个较好的结果 相对空域 更进一步提升是将选择通道作为第二通道 I 介绍 1 隐写术介
  • Ubuntu16.04桌面突然卡住怎么办?

    不知道有没有小伙伴和我一样 正在Ubuntu上工作呢 突然桌面就卡住了 键盘也没了反应 鼠标那个箭头只能移动 但是点击时却没有反应 作为一个Ubuntu小白 在最近的学习过程中遇到了好多问题 我把这些问题需要注意的地方记录下来 希望可以帮助
  • JMC性能监测

    文章目录 一 打开JMC 二 界面说明 三 配置java监测 四 总结 性能监测图形化 通过jdk自带的JMC工具即可轻松实现 JMC的全称为java mission control 意思为java程序任务控制台 一 打开JMC 在你下载好
  • 图解通信原理与案例分析-9:SFP光通信案例--数字信号的2-ASK光调制解调

    文本以SFP光模块的内部实现为案例 介绍数字电信号的光信号调制解调的基本原理 即如何把二进制的数字电信号调制到光信号上进行传输 反之 如何从光信号中解调出二进制的数字电信号 这部分的调制解调 完全是有SFP硬件实现的 不需要软件的编码 1
  • 关于Qt关闭程序但保持程序后台运行的坑(非常棘手)

    1 先说说我的后台程序的应用场景 关闭当前程序 隐藏 调用另一个ui ui的类型是悬浮窗 Qt Tool 并且在系统通知栏可以见到图标 后台程序逻辑都正常执行 2 实现后台运行的两种主要方式 1 重写closeEvent 并设置event
  • javaswing 设置背景图片

    背景图片的路径用自己的 改一下 package com gao import java awt import java awt event ActionEvent import java awt event ActionListener i
  • 树莓派不能上网解决方案

    判断自己的树莓派能不能上网 用这条命令试试 ping www baidu com ping www baidu com Temporary failure in name resolution 出现了以上错误 说明树莓派不能上网 解决思路
  • css3实现hover颜色,背景色,宽度等平滑变动(transition)

  • webpack 和html-webpack-plugin版本对应问题

    为了实现功能 配置生成预览页面 以前是 要实现的效果是 直接打开设置的首页 这里由于版本对应问题 一直报错 当前版本 devDependencies html webpack plugin 2 30 1 webpack 3 6 0 webp
  • idea使用lombok插件不能生效的原因

    要成功的使用lombok插件 需要3个步骤 一 需要先在idea中下载Lombok plugin 点击File gt settings gt plugins gt 然后点击以下图中所示 接着 在输入框输入lombok进行搜索 之后点击安装便
  • 粤嵌GEC6818-学习笔记2-屏幕相关及音频播放

    这里写目录标题 LCD屏幕 简介 操作 打开屏幕 映射 如何让plcd指向屏幕首地址 BMP图片的解析 把一张BMP格式的图片显示在我们的开发板上 触摸板的相关操作 练习 获取屏幕坐标 线程进程 练习 创建广告播放的一个线程 音频播放 播放
  • STM32——GPIO输入——按键检测

    硬件介绍 当按键置空时 IO接地 按键按下之后 IO口接通3 3V高电压 电流比较大 为了避免损坏IO 这里需要加装一个限流电阻 可以看到IO口是默认低电平 按键按下后产生一个上升沿 和平常的电路设计不太一样 这是因为PA0还具有一种自动唤
  • centos7网卡配置参数详细

    CentOS 7 中的网卡配置参数通常位于 etc sysconfig network scripts ifcfg
  • Python爬虫从入门到精通:(1)爬虫基础简介_Python涛哥

    第一章 爬虫基础简介 爬虫概述 前戏 你是否在夜深人静的时候 想看一些会让你更睡不着的图片 你是否在考试或者面试前夕 想看一些具有针对性的题目和面试题 你是否想在杂乱的网络世界获取你想要的数据 爬虫的价值 实际应用 就业 什么是爬虫 通过编