Python爬虫

概述和储备

  • 通俗定义:模拟浏览器(使数据可视化)行为抓取网页数据的技术

  • 技术定义:通过程序规则对互联网数据进行解析和存储

  • 工作原理:

    • 替代浏览器向服务器发起请求
    • 直接获取HTML等原始数据
    • 不进行页面渲染,专注数据提取
  • 爬虫流程示例

    • 基本流程:
      • 准备目标URL列表(地址URL)
      • 发送HTTP请求获取响应
      • 解析响应内容
      • 提取新URL(翻页/详情)---配置的参数在改变
      • 提取目标数据(封装处理)
      • 数据存储
    • 关键环节:翻页参数处理是保证数据完整性的重要技术点
  • 知识储备
    前端(HTML、CSS、JavaScript)小白教程#HTML 教程 <#了解HTML属性、元素、标题等>
    案例:#豆瓣电影排行榜 <#查看页面源代码>

  • 浏览器运行完整流程:

    • DNS解析获取服务器IP
    • 检查浏览器缓存(强缓存/协商缓存)
    • 与Web服务器建立TCP连接
    • 建立TCP连接(三次握手)
    • 获取HTML数据
    • 服务器响应HTML
    • 浏览器解析渲染(注:通过对结构的解析来抓取数据)
    • 执行JS脚本
    • 发起网络请求(如AJAX)
    • 响应ajax请求
    • 重点环节:理解从URL输入到页面渲染的完整链路
  • urllib库
    用于操作网页URL,并对网页的内容进行抓取处理

  • urllib模块 Example

    urllib.request---打开(urlopen方法)和读取URL

    urllib.error---包含urllib.request抛出的异常

    urllib.parse---解析URL

    urllib,robotparser---解析robots.txt文件

    • read() 函数获取网页的HTML实体代码,加入参数控制长度
    • readline() - 读取文件的一行内容
    • readlines() - 读取文件的全部内容

<#浏览器> - 可以对服务器返回的HTML数据进行解析从而在界面中呈现

复制代码
from urllib.request import urlopen
#urllib相关与URL处理的包管理器
url = ""
con = urlopen(url)
print('--------')
print(con.read)
f = open('test.html','wb')
f.write(cons)
f.close()
print(cons.decode{'utf-8'})

open

核心:创建一个file对象 python的I/O

复制代码
open(name[,model[,buffering]]) 

使用方式直接向上:

1.关于name:想访问的文件名

2.mode:决定打开的模式

mode-->w:只用与写入,如果文件存在,则直接打开,并从头进行编辑,进行原覆盖(删了重来),如果没有这个文件,他就会创建一个新的

mode-->wb:以二进制格式打开(一般用于非文本文件)

urllib主要作用:操作网页URL

复制代码
urllib.request.urlopen{url,data=None,[]}
相关推荐
CarIise1 分钟前
JavaScript基础语法与DOM操作实战课堂笔记
开发语言·javascript·笔记
林森lsjs8 分钟前
零基础吃透二叉树:定义、遍历与高频算法 —数据结构柒
java·开发语言·数据结构·算法·二叉树
wind1003231 分钟前
Qt5Widgets.dll 缺失报错|游戏软件无法启动完整修复教程
开发语言·qt·游戏·电脑
阿图灵39 分钟前
OpenCV 算术运算四件套:NOT/AND/OR 位运算与图像混合
图像处理·人工智能·python·opencv·计算机视觉·位运算
我叫张土豆41 分钟前
在 OpenClaw Java 对话框输入一句话后,系统是如何运行的?
java·开发语言·人工智能
边吃番茄边敲代码43 分钟前
企业智能助手Agent 安全测试,包含Prompt Injection 和越权工具调用
人工智能·python·功能测试·ai·单元测试·prompt·模块测试
牛油果子哥q1 小时前
C++模板万字深度精讲:函数/类模板特化、全特化与偏特化、SFINAE机制、类型萃取、模板元编程入门、工程实战落地
开发语言·c++·面试
阿图灵1 小时前
OpenCV 阈值与模糊:全局/自适应阈值、Canny 边缘检测与三种模糊
图像处理·人工智能·python·opencv·计算机视觉·边缘检测
神仙别闹1 小时前
基于C++ 实现 L 系统分形树
开发语言·c++
桃西西呀1 小时前
国内金价破 1000,「涨了多少」和「该买多少」是数学问题
人工智能·python·数据分析