Python爬虫学习笔记(二)————爬虫简介

2023-11-07

目录

1.爬虫概念

2.爬虫核心

3.爬虫分类

 通用爬虫

聚焦爬虫

4.反爬手段

(1)User‐Agent

(2)代理IP

(3)验证码访问

(4)动态加载网页

(5)数据加密


1.爬虫概念

通过一个程序,根据Url(http://www.taobao.com)进行爬取网页,获取有用信息。

使用程序模拟浏览器,去向服务器发送请求,获取响应信息。

爬⾍⼀定要⽤Python么? 不是的。 ⽤Java也⾏, C也可以, 编程语⾔只是⼯具.。抓到数据是你的⽬的. ⽤什么⼯具去达到你的⽬的都是可以的。那为什么⼤多数⼈喜欢⽤Python呢?  因为 Python写爬⾍简单,有⾮常多的关于爬⾍能⽤到的第三⽅⽀持库。

2.爬虫核心

爬取网页:爬取整个网页 包含了网页中所有得内容 2.

解析数据:将网页中你得到的数据 进行解析 3.

难点:爬虫和反爬虫之间的博弈

3.爬虫分类

 通用爬虫

实例

百度、360、google、sougou等搜索引擎‐‐‐伯乐在线

功能

访问网页‐>抓取数据‐>数据存储‐>数据处理‐>提供检索服务

robots协议

君子协议。一个约定俗成的协议,添加robots.txt文件,来说明本网站哪些内容不可以被抓取,起不到限制作用 自己写的爬虫无需遵守

网站排名(SEO)

1. 根据pagerank算法值进行排名(参考个网站流量、点击率等指标)

2. 百度竞价排名

缺点

1. 抓取的数据大多是无用的

2.不能根据用户的需求来精准获取数据

聚焦爬虫

功能

根据需求,实现爬虫程序,抓取需要的数据

设计思路

1.确定要爬取的url

如何获取Url

2.模拟浏览器通过http协议访问url,获取服务器返回的html代码

如何访问

3.解析html字符串(根据一定规则提取需要的数据)

如何解析

4.反爬手段

(1)User‐Agent

User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版 本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件

(2)代理IP

西次代理 快代理 什么是高匿名、匿名和透明代理?它们有什么区别? 1.使用透明代理,对方服务器可以知道你使用了代理,并且也知道你的真实IP。 2.使用匿名代理,对方服务器可以知道你使用了代理,但不知道你的真实IP。 3.使用高匿名代理,对方服务器不知道你使用了代理,更不知道你的真实IP。

(3)验证码访问

打码平台 云打码平台 超级

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python爬虫学习笔记(二)————爬虫简介 的相关文章

  • Django:模拟模型上的字段

    如何将模拟对象分配给该模型上的用户字段 无论如何都要绕过 SomeModel user 必须是 User 实例 检查吗 class SomeModel models Model user models ForeignKey User 我不会
  • 切片稀疏(scipy)矩阵

    我将不胜感激任何帮助 以理解从 scipy sparse 包中切片 lil matrix A 时的以下行为 实际上 我想根据行和列的任意索引列表提取子矩阵 当我使用这两行代码时 x1 A list 1 x2 x1 list 2 一切都很好
  • PyQt:如何通过匿名代理使用网页

    这真让我抓狂 我想在 QWebPage 中显示一个 url 但我想通过匿名代理来实现 Code setting up the proxy proxy QNetworkProxy proxy setHostName 189 75 98 199
  • 从Python中的字符串中提取货币金额

    我正在制作一个程序 从字符串中获取货币并将其转换为其他货币 例如 如果字符串是 the car cost me 13 250 我需要得到 and 13250 我已经有了这个正则表达式 1 确实如此 但是该字符串很有可能有多个价格 并且全部使
  • Tweepy StreamListener 到 CSV

    我是 python 新手 我正在尝试开发一个应用程序 使用 Tweepy 和 Streaming API 从 Twitter 检索数据并将数据转换为 CSV 文件 问题是此代码不会创建输出 CSV 文件 也许是因为我应该将代码设置为在实现例
  • 如何在 PyCharm 4.5.2 中使用 PyPy 作为标准/默认解释器?

    如何在 PyCharm 4 5 2 中使用 PyPy 作为标准 默认解释器 一切都在 Ubunutu 14 10 下运行 并且 pypy 已经安装 您可以在项目的设置下进行配置 这个官方文档直接涵盖了 https www jetbrains
  • 更改 Altair 中的构面标题位置?

    如何将方面标题 在本例中为年份 移动到每个图的上方 默认值似乎位于图表的一侧 这可以轻易改变吗 import altair as alt from vega datasets import data df data seattle weat
  • python 中的 Johansen 协整检验

    我找不到任何有关在处理统计和时间序列分析 pandas 和 statsmodel 的 Python 模块中执行 Johansen 协整检验的功能的参考 有谁知道是否有一些代码可以执行时间序列之间的协整测试 现在 这已在 Python 的 s
  • 动态 __init_subclass__ 方法的参数绑定

    我正在尝试让类装饰器工作 装饰器会添加一个 init subclass 方法到它所应用的类 但是 当该方法动态添加到类中时 第一个参数不会绑定到子类对象 为什么会发生这种情况 举个例子 这是可行的 下面的静态代码是我试图最终得到的示例 cl
  • 具有屏蔽无效值的 pcolormesh

    我试图将一维数组绘制为 pcolormesh 因此颜色沿 x 轴变化 但每个 x 的 y 轴保持不变 但我的数据有一些错误值 因此我使用屏蔽数组和自定义颜色图 其中屏蔽值设置为蓝色 import numpy as np import mat
  • 将文本注释到轴并对齐为圆

    我正在尝试在轴上绘制文本并将该文本与圆对齐 更准确地说 有一些具有不同坐标 x y 的点位于该圆内 并使用以下命令创建 ax scatter x y s 100 我想用圆圈连接并标记每个点 Cnameb 文本的坐标由 xp yp 定义 因此
  • 是否可以将 pd.Series 分配给无序 pd.DataFrame 中的列而不映射到索引(即不重新排序值)?

    在 Pandas 中创建或分配新列时 我发现了一些意外的行为 当我对 pd DataFrame 进行过滤或排序 从而混合索引 然后从 pd Series 创建新列时 Pandas 会重新排序该系列以映射到 DataFrame 索引 例如 d
  • 检测 IDLE 的存在/如何判断 __file__ 是否未设置

    我有一个脚本需要使用 file 所以我了解到 IDLE 没有设置这个 有没有办法从我的脚本中检测到 IDLE 的存在 if file not in globals file is not set 如果你想做一些特别的事情 file 未设置
  • 处理大文件的最快方法?

    我有多个 3 GB 制表符分隔文件 每个文件中有 2000 万行 所有行都必须独立处理 任何两行之间没有关系 我的问题是 什么会更快 逐行阅读 with open as infile for line in infile 将文件分块读入内存
  • 更改 Python Cmd 模块处理自动完成的方式

    我有一个 Cmd 控制台 设置为自动完成 Magic the Gathering 收藏管理系统的卡牌名称 它使用文本参数在数据库中查询卡片 并使用结果自动完成 建议卡片 然而 这些卡片名称有多个单词 Cmd 会从last到行尾的空间 例如
  • Python:高精度time.sleep

    你能告诉我如何在 Win32 和 Linux 上的 Python 2 6 中获得高精度睡眠函数吗 您可以在中使用浮点数sleep http docs python org library time html time sleep 该参数可以
  • 如何在单元测试中使用 JSON 发送请求

    我的 Flask 应用程序中有在请求中使用 JSON 的代码 我可以像这样获取 JSON 对象 Request request get json 这一直工作得很好 但是我正在尝试使用 Python 的 unittest 模块创建单元测试 但
  • 如何循环遍历字典列表并打印特定键的值?

    我是 Python 新手 有一个问题 我知道这是一个非常简单的问题 运行Python 3 4 我有一个需要迭代并提取特定信息的列表 以下是列表 称为部分 的示例 已截断 数千个项目 state DEAD id phwl type name
  • python sklearn中的fit方法

    我问自己关于 sklearn 中拟合方法的各种问题 问题1 当我这样做时 from sklearn decomposition import TruncatedSVD model TruncatedSVD svd 1 model fit X
  • 使用 urllib 编码时保持 url 参数有序

    我正在尝试用 python 模拟 get 请求 我有一个参数字典 并使用 urllib urlencode 对它们进行 urlencode 我注意到虽然字典的形式是 k1 v1 k2 v2 k3 v3 urlencoding 后参数的顺序切

随机推荐

  • Linux下同一个Tomcat部署多个项目不同端口访问

    1 复制conf Catalina文件夹并命名为Catalina1 cd app tomcat8bi conf cp a Catalina Catalina1 2 复制webapps文件夹并命名为webapps1 cd app tomcat
  • openwrt--编译源码

    准备工作 首先 系统我用的是ubuntu2004 openwrt版本是github上最新版本的代码 安装需要的软件 sudo apt get install git g make libncurses5 dev subversion lib
  • H5网页等链接被微信秒封(拦截、屏蔽、和谐)后最好的解决方法

    H5网页等链接被微信秒封 拦截 屏蔽 和谐 后最好的解决方法 参考文章 1 H5网页等链接被微信秒封 拦截 屏蔽 和谐 后最好的解决方法 2 https www cnblogs com lkli p 11424598 html 备忘一下
  • Linux学习 day13之k8s基础简介

    k8s基础简介 一 Kubernetes 概述 开源的 用于管理云平台中多个主机上的容器化的应用 特点 Kubernetes 组件 Master 组件 提供集群管理控制中心 kube apiserver ETCD kube controll
  • COOKIE与SESSION的区别

    Web基础 COOKIE与SESSION的区别 一 COOKIE 1 COOKIE是什么 cookie可以理解是服务器暂存在客户端的文本信息 txt文件 2 COOKIE从哪来 cookie从服务端来 它是由服务端生成的 客户端可以清除co
  • 线上问题处理案例:出乎意料的数据库连接池

    导读 本文是线上问题处理案例系列之一 旨在通过真实案例向读者介绍发现问题 定位问题 解决问题的方法 本文讲述了从垃圾回收耗时过长的表象 逐步定位到数据库连接池保活问题的全过程 并对其中用到的一些知识点进行了总结 一 问题描述 大促期间 某接
  • 查询CPU的核数

    超线程技术就是利用特殊的硬件指令 把两个逻辑内核模拟成两个物理芯片 让单个处理器都能使用线程级并行计算 进而兼容多线程操作系统和软件 减少了CPU的闲置时间 提高的CPU的运行效率 超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CP
  • java web学习心得

    时光转瞬即逝 一个学期的java web课程完美结束了 在张老师的辛苦教导下 我学到了很多知识 例如 Web应用的基本概念与系统架构 HTML界面技术 CSS技术 JavaScript脚本技术 Servlet服务器编程技术 JSP编程技术及
  • 如何使用 scikit-learn 为机器学习准备文本数据

    欢迎大家前往云 社区 获取更多腾讯海量技术实践干货哦 文本数据需要特殊处理 然后才能开始将其用于预测建模 我们需要解析文本 以删除被称为标记化的单词 然后 这些词还需要被编码为整型或浮点型 以用作机器学习算法的输入 这一过程称为特征提取 或
  • 时序预测

    时序预测 MATLAB实现HMM隐马尔可夫模型时间序列预测 目录 时序预测 MATLAB实现HMM隐马尔可夫模型时间序列预测 预测效果 基本介绍 模型描述 程序设计 学习总结 参考资料 预测效果 基本介绍 是一个双重随机的模型 以隐层状态序
  • 踩坑之 java微信wifi 配网airkiss

    最近在负责微信WiFi连接硬件设备的需求 只想说 坑 坑 坑 配网过程中一直重复报两个错 1 config fail Error 系统错误 错误码 40048 invalid url domain 2 config fail Error 系
  • latex longtable caption长度提前换行解决方案

    提前换行 解放方法 在表格外使用 setlength LTcapwidth textwidth
  • 初识Junit以及相关用法

    目录 一 Junit 是什么 二 Junit相关依赖 三 注解 3 1 Test 3 2 BeforeAll AfterAll 3 3 BeforeEach AfterEach 3 4 Disable 四 测试用例执行顺序 1 如何按照指定
  • 限制富文本编辑器可输入高度

    限制富文本编辑器可输入高度 应用场景 开发中偶尔会操作富文本编辑器 目前格式各样的富文本编辑器功能都较为完善 但总有自己的某个定制化需求没法在众多编辑器中寻求到手 本文以 限制富文本编辑器可输入高度 为例 提供详细的解决方法和解决此类问题的
  • 蓝桥杯打卡Day10

    文章目录 最长ZigZag子序列 最小面积子矩阵 一 最长ZigZag子序列IO链接 本题思路 本题是一道dp问题 集合划分 只有一个a i 或者倒数第二个元素是第j个数字并且需要是下降得到a j g j 1 状态计算f i max f i
  • 测试工程师真的可以轻松月收入破万吗?看了这20张图(市场+学习指南),我跪了!

    岗位最新信息 全国测试开发岗位需求及平均薪资 全国今日测试开发岗位招聘信息有1 2万条 全国平均薪资在3万 月 技能要求 大同小异 岗位职责 1 根据软件设计需求制定测试计划 设计测试数据和测试用例 2 独立开展测试分析 测试执行 并控制项
  • Latex在同一figure中排版多张图片的方法

    Latex在同一figure中排版多张图片的方法 主要使用了minipage 子图 语法 minipage可以嵌套 子图还可以分解为更多子图 功能很好玩 无聊可以自己试试 下面介绍几种常用效果的实现方法 并排显示两张图 并分别标记 begi
  • 网友:计算机专业月薪 2 万侮辱价狗都不去

    谨以此文献给万千正在迷茫焦虑的求职途中的各位伙伴 侮辱价这种帖子真的知乎脉脉牛客到处都是 我真的不理解这帮人什么心理 您搁这装啥呀 大部分同学求职的状态都是 特别焦虑 甚至特别悲观 每天看招聘进度 每天准备面试背题刷题 每天都在找各种信息试
  • DevOps教程:Azure DevOps

    注 本文译自 https www javatpoint com azure devops Azure DevOps Azure DevOps 也称为 Microsoft Visual Studio 团队服务 VSTS 它是为云构建的一组协作
  • Python爬虫学习笔记(二)————爬虫简介

    目录 1 爬虫概念 2 爬虫核心 3 爬虫分类 通用爬虫 聚焦爬虫 4 反爬手段 1 User Agent 2 代理IP 3 验证码访问 4 动态加载网页 5 数据加密 1 爬虫概念 通过一个程序 根据Url http www taobao