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

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

开始 ---> 发送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文档中导航或定位元素的查询语言,让你能够准确的定位文档中的特定元素,属性或文本

|-------------------|----------------|---------------------|
| 表达式 | 描述 | 举例 |
| / | 从根节点的直接子元素 | /html/body/div/h1 |
| // | 从任意位置选择节点 | //h1 |
| . | 当前节点下查找 | ./a与.//a |
| n | 选择第n个元素 | //p2 |
| last() | 选择最后一个元素 | //plast() |
| @attr | 选择有该属性的元素 | //p@color |
| @attr='value' | 选择该属性指等于指定值的元素 | //p@color='red' |
| * | 匹配任何元素节点 | //body/div/* |
| @* | 匹配元素的任何属性 | //body/div/a/@* |
| text() | 获取文本内容 | //div/p/text() |

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

复制代码
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)
相关推荐
喜欢的名字被抢了8 小时前
让爬虫请求像真实用户:六项反反爬策略详解
爬虫
跨境数据猎手9 小时前
多平台电商比价系统从零搭建合规
开发语言·爬虫·架构
wangruofeng1 天前
68K Star,一个爬虫框架凭什么统一了 HTTP、浏览器和 AI Agent
爬虫·github·ai编程
Bryce学亮1 天前
1688 半自动化拟人浏览信息处理工具爬虫
爬虫·python
简简单单就是我_hehe2 天前
前端埋点日志解决方案:完整 User-Agent 解析工具实现,爬虫识别、设备品牌、操作系统、浏览器版本全解析(附完整源码)
前端·爬虫
上海云盾-小余2 天前
遭 CC 攻击店铺直接瘫痪?WAF + 流量防护双重锁死恶意爬虫
爬虫
IP搭子来一个2 天前
爬虫代理IP怎么选?短效代理 vs 隧道代理选型指南(2026最新)
爬虫·tcp/ip
Web极客码2 天前
跨国网络抖动下的 AI 爬虫流调优:我如何用 Claude 打造“智能退避”资讯清洗管道
网络·人工智能·爬虫
武子康2 天前
调查研究-217 Fortress:当浏览器 Agent 开始被网站识别,开源 Chromium 反拦截引擎来了
人工智能·爬虫·agent
标致的自行车3 天前
Selenium 爬虫固定开头:
爬虫·selenium·测试工具