数据分析利器Python——爬虫(含爬取过程、Scrapy框架介绍)

本文介绍了Python爬虫的基础知识,包括URL管理、网页下载(requests模块)和网页解析(BeautifulSoup)。重点讲解了Scrapy框架,这是一个强大的爬虫平台,支持数据抽取、编码处理和结果输出格式控制。文中详细阐述了Scrapy的安装及使用步骤,包括创建工程、定义Item、编写爬虫主体和配置Pipeline。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基础知识

1、定义

是自动获取互联网信息的程序,用来对互联网信息进行分析、开发产品。

2、基本架构

URL管理模块:对计划爬取或已经爬取的URL进行管理(已爬取不再爬取,未爬取则爬取,已失效网站检测等)
网页下载模块:将URL管理模块中指定的URL进行访问下载
网页解析模块:解析网页下载模块中的URL,处理或保存数据;若解析到需要继续爬取的URL,则返回URL管理模块继续循环。

上图介绍了爬虫的流程,是学习本节的基础。

二、URL管理模块

防止重复爬取和循环指向
功能:

  • 可以添加新的URL
  • 管理已经爬取和未爬取的URL
  • 获取待爬取的URL

实现方式:

  • Python的set集合数据结构(使用了集合中数据的唯一性,适用于数据简单情况)
  • 数据库中的数据表(创建的时候打标签,标记flag位)

三、网页下载模块

将URL对应的网页下载到本地或读入内存(字符串)

Python中的requests模块

request.get(url) 返回request对象,通过request对象的方法获取想要的信息
属性:
status_codes:状态码

常见的状态码:

  • 200:请求成功
    404:请求的资源不存在
    500:内部服务器错误

headers:网页的header信息
encoding:网页编码
text:请求返回的文本信息
content: 以字节形式的非文本信息(图片等)

# 使用jupyter notebook
import requests
url = "https://www.baidu.com"
r_obj = requests.get(url)
r_obj.status_code # 返回状态码
r_obj.encoding = 'utf-8' # 若返回text时出现乱码则先将编码设置为utf-8格式再返回文本
r_obj.text

四、网页解析模块

从已下载网页中解析所需内容

实现方式:

  • 字符串匹配
  • <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

日光咖啡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值