IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 爬虫-实现一个简易的网页采集器 -> 正文阅读

[网络协议]爬虫-实现一个简易的网页采集器

1 requests模块的基本使用

"""
爬虫
"""
"""
什么是爬虫?
    就是通过编写程序模拟浏览器上网,然后让其去互联网上爬取数据的过程
爬虫的分类:
    通用爬虫:抓取互联网中的一整张页面数据
    聚焦爬虫:抓取页面中的局部数据
    增量式爬虫:用来监测网站数据更新的情况,以便爬取到网站最新更新出来的数据
"""
"""
requests模块:Python中封装好的一个基于网络请求的模块。
作用:用来模拟浏览器发请求

requests模块的编码流程:
    1.指定url
    2.发起请求
    3.获取响应数据
    4.持久化存储
"""

import requests

"""
第一版:中文乱码
"""
# 爬取百度首页
baidu_url = 'https://www.baidu.com/'
# 请求发送get:get返回值是一个响应对象
response = requests.get(url=baidu_url)
# 响应对象返回的是以字符串形式存储的响应数据
data = response.text
print(data)
# 将爬取到的数据存进文件里
with open('baidu.html', encoding='utf-8', mode='w') as f:
    f.write(data)


"""
第一版:解决中文乱码
"""

# 爬取百度首页
baidu_url = 'https://www.baidu.com/'
# 请求发送get:get返回值是一个响应对象
response = requests.get(url=baidu_url)
# 修改响应数据的编码格式
response.encoding = 'utf-8'
# 响应对象返回的是字符串形式的响应数据
data2 = response.text
print(data2)

with open('baidu2.html', encoding='utf-8', mode='w') as f:
    f.write(data)

2 实现一个简单的网页采集器

"""
UA(User-Agent)检测:门户网站通过检测请求载体的身份标识判定改请求是否为爬虫发起的请求,是的话会被拒绝访问。
UA伪装:将爬虫发起的请求伪装成浏览器的身份标识
Microsoft Edge浏览器的User-Agent:(检查-网络 里面去查找这个,见下面图片)
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 Edg/100.0.1185.29
"""

import requests

# 利用搜狗引擎搜索中国的url,"https://www.sogou.com/web?query=中国",#需要让url携带的参数动态化,观察结构
keyword_url = "https://www.sogou.com/web?"
# 实现参数动态化
you_want_search = input("请输入需要查找的关键字:")
# 将输入的参数存储成一个字典,键为url的关键字
key_dict = {'query': you_want_search}

# 解决UA检测:伪装成Microsoft Edge浏览器的身份标识
head = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 Edg/100.0.1185.29'
}

# params = 请求参数;
response = requests.get(url=keyword_url, params=key_dict, headers=head)

# 修改响应数据的编码格式,防止乱码
response.encoding = 'utf-8'
# 返回的是字符串形式的响应数据
datas = response.text

print(datas)
filename= you_want_search + '.html'
with open(filename, encoding='utf-8', mode='a') as f:
    f.write(datas)

3 浏览器的身份标识获取:User-Agent

(1)对网页右键,选择“检查”
(2)选择 “网络”,如下图步骤
在这里插入图片描述

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 16:25:55  更:2022-04-06 16:27:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:26:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码