Python爬虫(基本流程)

1. 确定目标和范围

  • 明确需求:确定你需要从哪些网站抓取哪些数据。
  • 合法性:检查目标网站的robots.txt文件,了解哪些内容可以被抓取。
  • 数据范围:确定爬取数据的起始和结束点,比如时间范围、页面数量等。

2. 选择合适的工具库

  • 请求库:如requests或urllib,用于发送HTTP请求。
  • 解析库:如BeautifulSoup(适用于HTML和XML)、lxml(速度快,适用于大型文档)、re(正则表达式,用于复杂字符串处理)。
  • 异步库:如aiohttp、asyncio,用于提高爬虫效率。
  • 存储库:如pandas(用于数据处理和存储为CSV或Excel文件)、sqlite3或pymysql(用于数据库存储)。

3. 发送请求

  • 使用requests或其他HTTP库发送GET或POST请求到目标网站。
  • 可能需要处理Cookies、Headers、Session等信息。
  • 应对反爬虫机制,如设置User-Agent、使用代理IP等。

4. 解析数据

  • 使用BeautifulSoup或lxml等库解析HTML或XML文档。
  • 提取所需的数据,如文本、图片链接、表格数据等。

5. 存储数据

  • 将提取的数据保存到本地文件(如CSV、JSON)或数据库中。
  • 可以使用pandas进行数据处理后再保存。

6. 异常处理

  • 编写异常处理代码以应对网络问题、解析错误等情况。
  • 可以使用try-except语句块来处理这些异常。

示例

爬取一个浏览器的页面:

  • 1、通过浏览器搜索自己想要的一个页面,按F12,找到网络;
  • 2、向上拉动,找到名称栏中的第一个,单机打开;
  • 3、可以在标头里看到请求URL请求方式,复制URL(需要用到);
  • 4、在表头的最下面有"User-Agent",也复制下来



代码操作:

python 复制代码
# 导入 requests 包
import requests
if __name__ == '__main__':
    # 模仿浏览器上网
    # UA伪装 让你认为我是一个浏览器(应对反爬虫机制)粘贴复制好的User-Agent
    head = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0"
    }

    # 1、指定url  粘贴复制好的URL
    url = "https://www.sogou.com/web?query=%E6%9D%A8%E5%B9%82&_asf=www.sogou.com&_ast=&w=01019900&p=40040100&ie=utf8&from=index-nologin&s_from=index&sut=3151&sst0=1721289914995&lkt=4%2C1721289911845%2C1721289912426&sugsuv=1721288239060070&sugtime=1721289914995"

    # 2、发送请求 返回的数据在response对象内
    response = requests.get(url, headers=head)   # 这是get请求方式

    # 3、获取你想要的数据
    print(response.text)

如何打开?

  • 1、在项目中创建一个html文件
  • 2、将获取到的数据全部放入到html文件中
  • 3、右上角会出现浏览器的小标识,选择想用的浏览器,单机打开(不需要管有没有报错)

打开后就能跳到你之前所搜索的页面

相关推荐
2601_961845152 分钟前
2026四级作文预测题|英语四级写作押题+提纲PDF
java·c语言·数据库·c++·python·pdf·php
日取其半万世不竭3 分钟前
Rust《腐蚀》 服务器低成本怎么开?配置、端口和存档避坑
服务器·开发语言·rust
消失的旧时光-19438 分钟前
Kotlin 协程设计思想(十):Kotlin 协程到底解决了什么问题?
开发语言·kotlin·生命周期·rxjava·协程·结构化并发
go不是csgo10 分钟前
从0到1理解Go熔断器:sony/gobreaker 源码剖析 + 仿TikTok Feed 项目实战
开发语言·后端·golang
阿狸猿15 分钟前
论企业应用系统的分层架构风格
java·开发语言·架构
JAVA96516 分钟前
JAVA面试-并发篇 07-CAS底层原理是什么有什么缺陷如何解决
java·开发语言·面试
San813_LDD19 分钟前
[QT]Qt对象树笔记:父子关系与内存管理
开发语言·qt
高洁0119 分钟前
用知识图谱重构搜索引擎
人工智能·python·数据挖掘·virtualenv·知识图谱
gaohe26AIliuzeyu20 分钟前
Java接口
java·开发语言
广州灵眸科技有限公司20 分钟前
3Tops NPU + 4核高性能架构:灵眸科技EASY-EAI-PI2开发板,为边缘AI开启“easy模式”
服务器·前端·人工智能·python·科技·深度学习·架构