大家早好、午好、晚好吖 ❤ ~欢迎光临本文章
Python 3.8
Pycharm
第三方模块安装:
win + R 输入cmd 输入安装命令 pip install 模块名
(如果你觉得安装速度比较慢, 你可以切换国内镜像源)
模块安装问题:
失败一: pip 不是内部命令
解决方法: 设置环境变量
失败二: 出现大量报红 (read time out)
解决方法: 因为是网络链接超时, 需要切换镜像源
清华:https://pypi.tuna.tsinghua.edu.cn/simple
失败三: cmd里面显示已经安装过了, 或者安装成功了, 但是在pycharm里面还是无法导入
解决方法: 可能安装了多个python版本 (anaconda 或者 python 安装一个即可) 卸载一个就好或者你pycharm里面python解释器没有设置好
导入模块
# 导入数据请求模块
import requests
# 导入正则
import re
"""
第一次请求: 请求 壁纸目录页面 链接, 获取 壁纸详情页url 数据
1. 发送请求: 壁纸目录页面
- 模拟浏览器对于url地址发送请求
I. 模拟浏览器作用: 为了防止被反爬
headers 请求头 <开发者工具复制>
1. F12打开开发者工具
2. 刷新网页
3. 随便选择一个数据包, 点击
4. 选择headers下面 request headers 里面 User-Agent
II. 确定请求链接:
III. 发送请求: 使用第三方模块 <非常多模块工具>
1. 提前安装好
在CMD中输入安装命令 pip install requests
2. 获取数据: 整个网页数据内容
- 当我获取网页内容的时候, 出现中文乱码, 阁下如何处理?
转码 response.encoding = '网页编码'
3. 解析数据: 提取具体数据内容 -> 壁纸详情页url
因为提取数据, 提取链接地址, 不提取中文名字
re.findall('数据', '数据源') --> 查找所有我们需要的数据
类似: 从什么地方, 去找什么数据
re.findall(' 里面 去找
“”"
# 模拟浏览器: 字典数据类型 <完整键值对形式>
headers = {
# User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.67
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
for page in range(1, 11):
if page == 1:
url = 'http://****/meinv/index.htm'
else:
# 请求链接
url = f'http://****/meinv/index_{page}.htm'
# 发送请求
源码、解答、教程等加V:qian97378免费领取
response = requests.get(url=url, headers=headers)
# 转码 * 不要一上来就是 utf-8
response.encoding = 'gbk'
# 获取数据
html_data = response.text
# 解析数据, 提取链接地址 \d+ 匹配多个数字
img_id_list = re.findall(', html_data)
# for循环遍历
for img_id in img_id_list:
# 构建详情页url
link = f'http://****/desk/{img_id}.htm'
"""
第二次请求: 请求 壁纸详情页url, 获取 图片url 数据
1. 发送请求: 壁纸详情页url
2. 获取数据: 整个网页数据内容
3. 解析数据: 提取具体数据内容 -> 图片url
"""
# 发送请求, 请求详情页url
response_1 = requests.get(url=link, headers=headers)
# 转码
response_1.encoding = 'gbk'
# 获取数据
link_data = response_1.text
# 解析数据
img_url, title = re.findall(', link_data)[0]
"""
第三次请求: 请求 图片url, 获取图片二进制数据
4. 保存数据
"""
# 获取图片数据内容
img_content = requests.get(url=img_url, headers=headers).content
with open('img\\' + title + '.jpg', mode='wb') as f:
# 写入数据
f.write(img_content)
print(img_url, title)
好了,今天的分享就差不多到这里了!
完整代码、更多资源、疑惑解答直接点击下方名片自取即可。
对下一篇大家想看什么,可在评论区留言哦!看到我会更新哒(ง •_•)ง
喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!
最后,宣传一下呀~更多源码、资料、素材、解答、交流皆点击下方名片获取呀