爬虫练习题(一)

简介: 爬虫练习题实战

目标网站:https://www.1ppt.com/moban/

爬取要求:

1、 翻页爬取这个网页上面的源代码

2、 并且保存到本地,注意编码

1.分析网站:

https://www.1ppt.com/moban/ 第一页

https://www.1ppt.com/moban/ppt_moban_2.html 第二页

https://www.1ppt.com/moban/ppt_moban_3.html 第三页

import urllib.request

start = int(input("输入起始页"))  # 转int
end = int(input("输入结束页"))
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}
for n in range(start, end + 1):
    url = 'https://www.1ppt.com/moban/ppt_moban_{}.html'.format(n)
    print(url)
    req = urllib.request.Request(url, headers=headers)  # 实例化请求对象
    response = urllib.request.urlopen(req)  # 发送请求的方法
    with open(f'第{n}页.html', 'a', encoding='gb2312') as f:
        f.write(response.read().decode('gb2312'))

首先,我们打开网址,右击点开查看网页源代码,或者是右击检查抓包,Network 网络是展现网页数据包的地方,找网址相同的数据包,点开 response 响应内容,这也是页面源码。

我们在 pycharm 新建文件,第一步分析网页抓包,手动翻页,找到 url 规律,把网页链接拿下来复制并粘贴在 pycharm 工程文件中,我们可以看到第一页和后面的网页链接不一致,这里可以手动加上,后面可能会需要用到判断。

然后,我们用 import 导入 urllib.request 模块,Ctrl+Alt+L 可以让代码变规范。

构建 url,可以用循环,也可以一页一页构建,网址之前是 http(80)https(443)协议,括号内为端口,紧接着是域名,“?”后是 get 请求携带的一些参数,kw 搜索内容,pn 为页面,其他的参数可能不怎么影响爬取进程,就可以删掉。构建好 URL 后,可以打印

发起请求

zlf = urllib.request.Request(url,headers=headers),构建请求对象,实例化请求对象,并用变量接收

response = urllib.request.urlopen(zlf)

拿到响应内容,最后,用 with open 保存,文件名,'w'写入(模式默认只读'r'),encoding(编码格式,怎么解码怎么写),as 后面取别名,

read 把数据以字节形式提取出来,后面可以转码用 decode

目录
相关文章
|
7月前
|
异构计算 Python
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
ERROR: pip’s dependency resolver does not currently take into 报错-Python项目依赖冲突的解决方案-优雅草优雅草卓伊凡
530 1
|
机器学习/深度学习 自动驾驶 算法
图像识别中的scikit-learn:从像素到分类
【4月更文挑战第17天】本文介绍了如何使用Python的scikit-learn进行图像识别,包括图像预处理、特征提取(如HOG、SIFT)和分类器训练(如SVM、决策树)。通过一个示例展示了从像素数据到图像分类的完整流程,强调了预处理和特征提取的重要性。虽然scikit-learn在图像识别中有应用,但随着深度学习的发展,卷积神经网络在该领域展现出更强的性能,暗示了未来结合深度学习与scikit-learn的研究趋势。
|
安全 物联网 物联网安全
揭秘区块链技术在物联网(IoT)安全中的革新应用
揭秘区块链技术在物联网(IoT)安全中的革新应用
|
JavaScript 前端开发 数据安全/隐私保护
JavaScript 实现的base64加密、md5加密、sha1加密及AES加密
1. Base64加密 1). js-base64 2). 安装 npm install --save js-base64 3). 使用 // 加密 var str = Base64.
3097 0
|
Web App开发 数据采集 前端开发
Python + Chrome 爬虫:如何抓取 AJAX 动态加载数据?
Python + Chrome 爬虫:如何抓取 AJAX 动态加载数据?
|
Web App开发 前端开发 JavaScript
Python编程—Ajax数据爬取(一)
Python编程—Ajax数据爬取(一)
314 0
|
存储 人工智能 安全
Web安全开发规范手册V1.0(二)
团队最近频繁遭受网络攻击,引起了技术负责人的重视,笔者在团队中相对来说更懂安全,因此花了点时间编辑了一份安全开发自检清单,觉得应该也有不少读者有需要,所以将其分享出来。
2121 0
|
Java 数据库连接 测试技术
Spring Boot 2.x基础教程:使用JTA实现多数据源的事务管理
Spring Boot 2.x基础教程:使用JTA实现多数据源的事务管理
631 0
Spring Boot 2.x基础教程:使用JTA实现多数据源的事务管理
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了一种结合知识图谱与大型语言模型(LLM)的GraphRAG系统,利用PolarDB、通义千问及LangChain实现。知识图谱通过结构化信息、语义理解和推理等功能,增强了信息检索与自然语言处理效果。PolarDB具备图引擎与向量检索能力,适配知识图谱存储与查询。通义千问处理自然语言,LangChain则整合模型与应用。实战步骤包括环境准备、数据库配置与数据导入,并通过实例展示了图谱与向量联合检索的优越性,提升了问答系统的准确性和实用性。
1919 0
|
机器学习/深度学习 人工智能 算法
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集('蜜蜂', '甲虫', '蝴蝶', '蝉', '蜻蜓', '蚱蜢', '蛾', '蝎子', '蜗牛', '蜘蛛')进行训练,得到一个识别精度较高的H5格式模型文件,然后使用Django搭建Web网页端可视化操作界面,实现用户上传一张昆虫图片识别其名称。
1114 7
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50

热门文章

最新文章

下一篇
开通oss服务