一、爬虫的定义

       网络爬虫也叫网络蜘蛛,如果把互联网比喻成一个蜘蛛网,那么蜘 蛛就是在网上爬来爬去 的蜘蛛,爬虫程序通过请求url地址,根据响 应的内容进行解析采集数据

二、爬虫的作用

       通过有效的爬虫手段批量采集数据,可以降低人工成本,提高有效 数据量,给予运营/销售的数据支撑,加快产品发展。

三、应用场景

  1. 搜索引擎: 爬虫会扫描网络以索引新的网页,以便用户可以在搜索引擎(如Google、Bing)中快速找到相关内容。

  2. 数据分析: 企业使用爬虫工具自动从竞争对手的网站上收集数据,以进行市场分析和竞争情报。

  3. 价格监控: 在线零售商利用爬虫监控其竞争对手的价格变化,以调整自己的定价策略。

  4. 内容聚合: 新闻网站和门户网站会使用爬虫从多个来源抓取信息,并将其整理在一个平台上,提供多样化的新闻内容。

  5. 学术研究: 学者和研究人员利用爬虫收集大量研究数据或科学文献,进行数据挖掘和分析。

四、合法性

4.1、合法的爬虫

公开的数据,没有标识不可爬取

不影响别人服务器

不影响的业务

4.2、不合法的爬虫

用户数据

部分网站、APP数据超过指定数量

明文规定不让爬取:在域名后加上 /robots.txt   页面上标明

影响业务查看

影响服务器 类似DDOS攻击的问题

五、爬虫的基本套路

5.1、基本流程

目标数据:想要什么数据

来源地址

结构分析:具体数据在哪(网站、还是APP)         如何展示的数据

实现构思

操刀编码

5.2、基本手段

破解请求限制:

        请求头设置,如:useragant为有效客户端

        控制请求频率(根据实际情景)

        IP代理

        签名/加密参数从html/cookie/js分析

破解登录授权:请求带上用户cookie信息

破解验证码:简单的验证码可以使用识图读验证码第三方库

5.3、解析数据

HTML Dom解析:

        正则匹配,通过的正则表达式来匹配想要爬取的数据,如:有些数据不是在html 标签 里,而是在html的script 标签的js变量中

        使用第三方库解析html dom,比较喜欢类jquery的库

数据字符串:

        正则匹配(根据情景使用)

        转 JSON/XML 对象进行解析

六、第一个爬虫

6.1、爬虫的开发工具

对于爬虫来说,最核心的就是发送请求,让网络服务器返回相应的 数据。而最为核心之一就是找到URL,这时就需要一个可以帮助我 们分析URL的工具,浏览器开发者工具

6.2、第一个爬虫

        其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到 的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的, 实质它是一段HTML代码,加 JS、CSS。如果把网页比作一个人,那 么HTML便是他的骨架,JS便是他的肌肉,CSS便是它的衣服。所以 最重要的部分是存在于HTML

from urllib.request import urlopen

# 请求的地址
url = 'http://www.baidu.com/'
# 发送请求
resp = urlopen(url)
# 打印响应结果
print(resp.read().decode())
# 获取响应码
print(resp.getcode())
# 获取访问的url
print(resp.geturl())
# 获取响应头信息
print(resp.info())

七、思维导图

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐