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"
相关推荐
风吹夏回13 小时前
Python 全局异常处理:从“满屏 try-except”到优雅兜底
开发语言·python
小熊Coding14 小时前
Python爬取当当网二手图书项目实战!
开发语言·爬虫·python·beautifulsoup·requests·二手图书
秋914 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
小江的记录本14 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
田里的水稻14 小时前
OE_ubuntu26.04与宿主机之间复制粘贴内容
人工智能·python·机器人
jiayong2315 小时前
02 创建虚拟环境
python
旺仔来了15 小时前
不联网的Linux下部署python环境
linux·开发语言·python
小江的记录本16 小时前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试
IP搭子来一个16 小时前
爬虫采集大量返回 403、429,到底卡在哪一环?
网络·爬虫·python
deepin_sir16 小时前
06 综合对比与实战选型——到底该用哪个?
python