网络机器人(爬虫)-入门

爬虫:也称网络爬虫(网络机器人),是一种按照一定的预设规则,自动浏览并抓取网络数据的程序或脚本

开始 ---> 发送Http请求 ---> 解析结果提取数据---->数据处理(清洗)-->数据存储 --->结束

数据清洗:是指对采集到的原始数据进行处理,修正,转换和标准化的过程,目的是让数据变得数据变得规范,准确

robots协议:

robots协议也称为爬虫协议,爬虫规则,是指网站根目录下存放的一份文本文件robots.txt,用于告诉爬虫那些页面可以抓取,哪些页面不能抓取。(君子协议)
User-Agent: 用户代理,通过该请求头确认爬虫的类型

Disallow:   禁止访问的资源

Allow: 运行访问的资源

Sitemap: 网站地图,帮助爬虫更高效地获取网站内容

Craw-delay: 爬取间隔时间,避免频繁访问造成网站地压力过大

怎么查看每个网站的robots协议

在每个网址后面加上/robots.txt

练习: 获取TIOBE编程语言排行榜单

1. 查看TIOBE网站的robots.txt文件,明确资源获取的规则

2. 安装requests库,用于发送网络请求(pip install requests)

3. 编写python代码,访问TIOBE网站,获取数据
代码示例import requests # 定义url target_url = "http://www.tiobe.com/tiobe-index/" # 发送请求,获取数据 response = requests.get(target_url) # 输出到控制台 print(response.text) 这里提一嘴,所有的网络请求都是get请求

另外返回的是页面的前端代码,接下来就是解析结果处理数据

处理前端数据前先说明一下网页结构也就是前端的基础知识

一个网页是由三个部分组成的,分别是:HTML,CSS,JS

HTML: 超文本语言,由一堆预设的标签构成。HTML负责网页的结构(页面元素和内容)

CSS: 层叠样式表。CSS负责网页的表现(页面元素的外观,位置等样式,如颜色,大小等)

JS: 全称:JavaScript,负责网页的行为(交互效果)

我们要抓取的是网页当中的内容 也就是HTML控制页面的内容

HTML: 超文本标记语言。

超文本: 超越了文本的限制,比普通文本更强大。除了文字信息,还可以定义图片,音频,视频等内容

标记语言: 由标签“<标签名>”构成的语言

HTML标签都是预定义好的。例如:使用<h1>展示标题,使用<img>展示图片,使用<video>展示视频。

HTML代码直接在浏览器中运行,HTML标签由浏览器解析

接下来回归正轨

如何解析返回的前端代码,那就是lxml

啥事lxml

 lxml: 是一个高性能的HTML/XML文档的解析库,支持Xpath语法来解析和获取网页数据

Xpath语法:

一种在HTML/XML文档中导航或定位元素的查询语言,让你能够准确的定位文档中的特定元素,属性或文本

那么怎么从这个图片中解析数据

response = requests.get(target_url) document = html.fromstring(response.text) #解析数据 th_list=document.xpath("//table[@id='top20']/thead/tr/th/text()") print(th_list)

怎么讲每个tr单独占一行打印出来

tr_list=document.xpath("//table[@id='top20']/tbody/tr") for tr in tr_list: td_list=tr.xpath("./td/text()") print(td_list)

Read more

ROS2机器人slam_toolbox建图零基础

系统:Ubuntu22.04 ROS2版本:Humble 雷达设备:rplidar_a1 一、安装必要的软件包 # 更新系统 sudo apt update # 安装slam_toolbox sudo apt install ros-humble-slam-toolbox # 安装RPLidar驱动 sudo apt install ros-humble-rplidar-ros # 安装导航相关包 sudo apt install ros-humble-navigation2 ros-humble-nav2-bringup 二、配置RPLidar_A1 创建udev规则(让系统识别雷达) # 创建udev规则 echo 'KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}

Java 大视界 -- Java 大数据在智能家居能源消耗趋势预测与节能策略优化中的应用(433)

Java 大视界 -- Java 大数据在智能家居能源消耗趋势预测与节能策略优化中的应用(433)

Java 大视界 -- Java 大数据在智能家居能源消耗趋势预测与节能策略优化中的应用(433) * 引言: * 正文: * 一、智能家居能源管理的核心痛点与 Java 大数据的价值 * 1.1 行业核心痛点(基于《2024 中国智能家居行业白皮书》) * 1.2 Java 大数据的核心价值(实战验证适配性) * 二、技术架构设计实战(纵向架构图) * 2.1 核心技术栈选型(生产压测验证版) * 2.2 关键技术亮点(博主实战总结) * 三、核心场景实战(附完整可运行代码) * 3.1 场景一:能耗趋势预测(线性回归 + LSTM 融合模型) * 3.1.1 业务需求 * 3.1.

机器人导论 第六章 动力学(1)——牛顿欧拉法推导与详述

机器人导论 第六章 动力学(1)——牛顿欧拉法推导与详述

机器人动力学分析复习速通 机器人分析分为 牛顿欧拉法、拉格朗日法、高斯法、凯恩方法 matlab提供的逆动力学采用的是牛顿欧拉法:RNE——Recursive Newton-Euler 需要三个参数,第一个是给定最终的角度,第二个是速度,第三个是角加速度,返回各个关节所需要的力矩。 可选参数有重力加速度和负载fext 牛顿欧拉法 我们的目标是给定机器人的关节位置 q、速度 qd 和加速度 qdd,计算出为了产生这个运动状态,每个关节需要施加多大的驱动力矩 。 一上来看到有人问——我们不是用力域雅可比解决了每个关节应该分配多大力矩的问题了吗? 这是我初学的时候也弄混的问题。 “力域雅可比”解决的是一个不同的问题,属于静力学或外力映射范畴,他的目的是将作用在机器人末端执行器上的外力/力矩 映射到对应的关节空间力矩 。 区别就是一个是给定运动状态,计算每个关节为了达到这个运动状态需要多大力; 另一个则是给定末端的力,计算这个力分配在各个关节上是多大。 牛顿欧拉法的精髓在于正推和逆推,我们来看这个过程: * 正向递推(Forward Recursion):从基

Enterprise Architect 16 下载、安装与无限30天操作

Enterprise Architect 16 下载、安装与无限30天操作

文章目录 * Enterprise Architect 16 简介 * (一)支持多种建模语言和标准 * (二)强大的版本控制、协作和文档管理功能 * (三)增强的技术和用户体验 * (四)高级功能和扩展性 * 一,下载软件 * (一)官网 * (二)阿里云盘 * (三)百度网盘 * (四)迅雷 * 二,安装软件 * 三,无限30天设置 * (一)删除`fkey.dat`文件 * (二)删除注册表Kane文件夹 * (三)查看效果 Enterprise Architect 16 简介 Enterprise Architect 16是一款功能强大的企业级建模工具,它为企业和机构在系统设计、业务流程建模、数据建模以及软件开发等方面提供了全面的支持。以下是对Enterprise Architect 16的详细介绍: