首页 > 编程语言 >python—爬虫的初步了解

python—爬虫的初步了解

时间:2024-07-20 18:29:38浏览次数:19  
标签:.. python 爬虫 初步 Python HTML 解析 数据

Python 爬虫(Web Scraping)是一种自动化从网站上提取数据的技术。Python 由于其简洁的语法、丰富的库和强大的社区支持,成为了实现网络爬虫的首选语言之一。下面是一些Python爬虫的基本概念和步骤:

1. 爬虫的基本概念

  • 请求(Request):爬虫向服务器发送的请求,通常包括URL、HTTP方法(如GET、POST)、请求头等。
  • 响应(Response):服务器对爬虫请求的回应,包含请求的网页内容(HTML、JSON等)、状态码(如200表示成功)、响应头等。
  • 解析(Parsing):从响应内容中提取需要的数据。这通常涉及到HTML或JSON的解析。
  • 存储(Storing):将提取的数据保存到数据库、文件或其他存储系统中。

2. Python 爬虫的基本步骤

确定目标:明确要爬取的网站和数据。
发送请求:使用Python的库(如requests、urllib)向目标网站发送HTTP请求。
获取响应:接收服务器返回的响应内容。
解析内容:使用HTML解析库(如BeautifulSoup、lxml)或JSON解析库(Python内置的json模块)来解析响应内容,提取所需数据。
数据存储:将提取的数据保存到文件、数据库或其他存储介质中。
异常处理:添加异常处理逻辑,确保爬虫的稳定性和健壮性。
遵守规则:遵守robots.txt协议和网站的使用条款,不要对网站造成过大压力。

3. 常用的Python库

  • requests:用于发送HTTP请求。
  • BeautifulSoup:用于解析HTML和XML文件,提取数据。
  • lxml:另一种HTML和XML解析库,速度比BeautifulSoup快。
  • json:Python内置的库,用于解析JSON数据。
  • re:Python内置的库,用于正则表达式匹配。
  • pandas:用于数据处理和分析,方便地将数据保存到CSV或Excel文件中。
  • Scrapy:一个快速高级的Web爬虫框架,用于爬取网站并从页面中提取结构化的数据。

4.爬虫相关知识

  • URL:统一资源定位符 uniform resource locator

bdce42aed53c6987a10545ea9e6a1e6.png
http: 超文本传输协议 HyperText Transfer Protocol 默认端口 80

https: 安全的超文本传输协议 security 默认端口 443
www.example.com 域名
/path/to/myfile.html 资源路径

  • 前端代码
<!DOCTYPE html> 声明为 HTML5 文档
<html>..</html> 是网页的根元素
<head>..</head> 元素包含了文档的元(meta)数据,如 <meta charset="utf-8"> 定义网页编码格式为 utf-8。
<title>..<title> 元素描述了文档的标题
<body>..</body> 表示用户可见的内容
<div>..</div> 表示框架
<p>..</p> 表示段落
<ul>..</ul> 定义无序列表
<ol>..</ol>定义有序列表
<li>..</li>表示列表项
<img src="" alt="">表示图片
<h1>..</h1>表示标题
<a href="">..</a>表示超链接
<!DOCTYPE html>
<html>
    <head>
        <!-- 内嵌样式 -->
        <style type="text/css">
        body{
            background-color:yellow;
        }
        p{
            font-size: 30px;
            color: springgreen;
        }
        </style>
        <meta charset="utf-8">
        <title>红米煮粥</title>
    </head>
    <body>
        <a href="www.anhuisjxy.com">点击访问</a>
        <h1>红米煮粥www.anhuisjxy.com</h1>
        <h2>Python爬虫</h2>
        <div>
            <p>认识网页结构</p>
            <ul>
                <li>HTML</li>
                <li>CSS</li>
            </ul>
        </div>
    </body>
</html>
<!DOCTYPE html>
<html>
    <head>
        <style type="text/css">
        body{
            background-color: rgb(220, 226, 226);
        }
        </style>
        <meta charset="utf-8">
        <title>红米煮粥</title>
    </head>
    <body>
        <h1 style="color: blue;">红米煮粥www.anhuisjxy.com</h1>
        <h2>Python爬虫</h2>
        <p>点击下方按钮获取当前时间</p>
        <button onclick="DisplayDate()">点击这里</button>
        <p id="time" style="color: red;"></p>
        <!-- script标签内部编写js代码 -->
        <script>
            function DisplayDate(){
            document.getElementById("time").innerHTML=Date()
            }
        </script>
        </div>
    </body>
</html>

5.爬虫相关包的下载

  • 安装requests,lxml包
pip install requests
  • pip 换源
pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple/
pip config set install.trusted-host pypi.mirrors.ustc.edu.cn
  • User-Agent: 身份标识 表示你是哪个浏览器

标签:..,python,爬虫,初步,Python,HTML,解析,数据
From: https://blog.csdn.net/2301_77698138/article/details/140558072

相关文章

  • Python集合的概念与使用
      在Python中,集合(set)是一种无序且不包含重复元素的数据结构。集合对象由一组大括号 或 函数创建,但请注意,大括号 在没有元素的情况下会创建一个空字典,而不是空集合。因此,当你想创建一个空集合时,应该使用 set()函数而不是 set{}集合的特点无序:集合中的元素没有特定的......
  • python——面向对象(2)继承与多态
    文章目录继承的基本语法继承的特点继承的类型多态在Python中,继承是一种基于已存在的类来创建新类的方式。这种机制允许我们定义一个通用的类,然后基于这个类来定义一些特定的类,这些特定的类将继承通用类的属性和方法,同时也可以添加或覆盖一些新的属性和方法。这种方式......
  • Python 更换 pip 源详细指南
    目录前言pip国内源临时换源方法一:添加参数方法二:设置环境变量永久换源方法三:修改配置方法四:pip命令修改总结前言在我们使用Python3时,pip是一个不可或缺的工具,它用于安装和管理第三方库。然而,有时我们可能会遇到Python库下载速度慢的问题,这是因为默认的pi......
  • 使用Python的Turtle库绘制中国火箭模型,点燃航天梦!
    引言在编程教育中,turtle模块是一个非常受欢迎的图形化编程工具,尤其适合初学者学习和实践。它允许我们通过控制一个可以在屏幕上移动的“小乌龟”来绘制各种形状和图案,从而让编程变得直观且有趣。Turtle库简介turtle是Python标准库的一部分,它提供了一个简单而强大的绘图环......
  • 用Python调整图片尺寸教程【附源码】
    就像我们学习数学一样,多做题多练习,才会熟能生巧。更多项目源码,实战案例,文件夹领取方式在文末学习Python也是一样,练习才是学好Python的最优解。只有不停的敲代码,不断练习,才能不断进步。实操练习你是否遇到过上传照片有大小要求?不管是上传证件照报名参赛,总会有一个不要......
  • 干货 |Python中的循环结构
    应用场景我们在写程序的时候,一定会遇到需要重复执行某条或某些指令的场景。例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向移动的指令。在这个场景中,让机器人向球门方向移动就是一个需要重复的动作,当然这里还会......
  • 干货| Python代码性能优化总结
    本文会介绍不少的Python代码加速运行的技巧。在深入代码优化细节之前,需要了解一些代码优化基本原则。第一个基本原则:不要过早优化很多人一开始写代码就奔着性能优化的目标,“让正确的程序更快要比让快速的程序正确容易得多”。因此,优化的前提是代码能正常工作。过早地进......
  • 在pyspark(python)中将json字符串扩展到多列
    我需要将Json对象(b列)扩展到多列。从此表中,A列B列id1[{a:1,b:'letter1'}]id2[{a:1,b:'letter2',c:3,d:4}]对......
  • python实现文件的读写
    python实现文件的读写路径的书写:open("E:\\ai_03\\code\\ai_03_python\\day07\\data.txt")#两个斜杠open(r"E:\ai_03\code\ai_03_python\day07\data.txt","w",encoding="utf8")#建议使用读文件读文件的格式要以读文件的模式打开一个文件对象,使用Python......
  • python模块化设计
    在Python中,模块化是将代码分解为独立的功能块,并通过导入和使用这些功能块来实现代码复用和组织的一种方式。模块化的编程风格使得代码更易于维护、扩展和测试。以下是Python实现模块化的一些常用方法:使用import语句导入模块:可以使用import语句导入其他Python文件(.py文件)作为......