Python爬虫入门教程

文章目录:

一:Python基础

二:爬虫须知

1.流程

2.遵守规则

三:HTTP请求和响应

1.相关定义

2.HTTP请求响应

[2.1 完整的HTTP请求](#2.1 完整的HTTP请求)

[2.2 完整的HTTP响应](#2.2 完整的HTTP响应)

3.Requests库

四:HTML

1.HTML网页结构

2.常用标


参考:Python+爬虫

一:Python基础

Python快速入门教程

二:爬虫须知

1.流程

复制代码
第一步:获取网页内容(Requests库发送HTTP请求)

第二步:解析网页内容(Beautiful Soup库获取HTML网页结构内容信息)

第三步:储存或分析数据

2.遵守规则

复制代码
1.不要爬取公民隐私数据

2.不要爬取受著作权保护的内容

3.不要爬取国家事务国防建设和尖端技术领域

4.请求数量和频率不能过高:否则可能无异于DDos攻击

5.有反扒限制就不要去爬取了:需要登录、验证码

6.查看网站的robots.txt文件:了解可爬取的网页路径范围

三:HTTP请求和响应

1.相关定义

复制代码
HTTP:超文本传输协议
      客户端和服务器之间的请求响应协议



请求方法
    Get:获得数据
    Post:创建数据



接收的响应数据类型
    HTML:text/html
    JSON:application/json
    HTML和JSON:text/html,application/json
    任意类型:/*/



常见的状态码和状态消息
    200 ok                              客户端请求成功
    300 Moved Permanently               重定向资源被永久移动到新地址
    400 Bad Request                     客户端不能被服务器所理解
    401 Unauthorized                    请求未经授权
    403 Forbidden                       服务器拒绝提供服务
    404 Not Found                       请求资源不存在
    500 Internal Server Error           服务器发生不可预期的错误
    503 Server Unavailable              服务器当前不能处理客户端的请求

2.HTTP请求响应

2.1 完整的HTTP请求

复制代码
POST请求
    #请求行                        协议版本
    POST/user/info?new_user=true HTTP/1.1
    #请求头  域名             资源路径           查询参数
    Host:www.douban.com/movie/top250?start=75&filter=unwatched
    User-Agent:curl/7.77.0
    Accept:*/*
    #请求体
    {
     "username":"刘鑫磊",
     "email":"123@qq.com"
    }



GET请求
    #请求行
    GET/user/info?new_user=true HTTP/1.1
    #请求头
    Host:www.example.com
    User-Agent:curl/7.77.0
    Accept:*/*

2.2 完整的HTTP响应

复制代码
#状态行:协议版本 状态码 状态消息
HTTP/1.1 200 OK
#响应头
Date:Fri,27 Jan 2023 02:10:48 GMT
Content-Type:text/html;charset=utf-8
#响应体
<!DOCTYPE html>
    <head><title>首页</title></head>
    <body><h1>刘鑫磊</h1><p>非常棒</p></body>
</html>

3.Requests库

复制代码
#在终端输入(视图------>工具窗口------>终端):pip install requests
import requests

#把爬虫程序伪装成正常的浏览器
#任意网页------>鼠标右键------>检查------>Network------>User-Agent------>复制过来
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"}

response=requests.get("http://movie.douban.com/top250",headers=headers)
print(response)
print(response.status_code)
if response.ok:
    # 获取响应体内容
    print(response.text)
else:
    print("请求失败")

四:HTML

1.HTML网页结构

复制代码
<!DOCTYPE HTML>
<html>
    <body>
        <h1>我是标题</h1>
        <p>我是一段文字</p>
    </body>
</html>

2.常用标

复制代码
标题:<h1></h1>


文本段落:<p></p>


换行:<br>


图片:<img src="图片链接">


链接:<a href="链接地址" target="_self"></a>       target="_blank"


容器:<span></span>                               内联元素不会独占一块,一行可写多个


有序列表:<ol><li></li></ol>
无序列表:<ul><li></li></ul>


表格
    <table>
        <thead>                 #头部
            <tr>                #行
                <td></td>       #列
            </tr>
        <thead>
        <tbody>                 #主体
            <tr>                # 行
                <td></td>       # 列
            </tr>
        </tbody>
    </table>


class属性:定义元素的类名称,帮助我们分组
    class="content"     class="review"
相关推荐
2501_9418779813 分钟前
从配置热更新到运行时自适应的互联网工程语法演进与多语言实践随笔分享
开发语言·前端·python
酩酊仙人21 分钟前
fastmcp构建mcp server和client
python·ai·mcp
且去填词1 小时前
DeepSeek API 深度解析:从流式输出、Function Calling 到构建拥有“手脚”的 AI 应用
人工智能·python·语言模型·llm·agent·deepseek
rgeshfgreh1 小时前
Python条件与循环实战指南
python
rgeshfgreh1 小时前
通达信LC1文件结构解析指南
python
七夜zippoe2 小时前
事件驱动架构:构建高并发松耦合系统的Python实战
开发语言·python·架构·eda·事件驱动
Kratzdisteln2 小时前
【MVCD】PPT提纲汇总
经验分享·python
一个无名的炼丹师2 小时前
GraphRAG深度解析:从原理到实战,重塑RAG检索增强生成的未来
人工智能·python·rag
用户8356290780513 小时前
用Python轻松管理Word页脚:批量处理与多节文档技巧
后端·python
进击的松鼠3 小时前
LangChain 实战 | 快速搭建 Python 开发环境
python·langchain·llm