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 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python零基础爬虫 分享高清优秀插画(这是个正经得网站) -> 正文阅读

[Python知识库]python零基础爬虫 分享高清优秀插画(这是个正经得网站)

前言

嗨喽!大家好,这里是魔王。总所周知, 某站是某知名的虚拟社区, 聚集了众多的优秀艺术家.他们在某站上相互交流, 分享高清优秀插画, 是一个正经的网站!那么我们今天就来爬一爬它!

亮点:

  1. 系统分析目标网页
  2. html标签数据解析方法
  3. 海量图片数据一键保存

环境介绍:

  • python 3.8 – anaconda 安装了一些模块 / 自动的 配置环境变量
  • pycharm 2021专业版 >>> 激活码
  • requests >>> pip install requests
  • parsel >>> pip install parsel

思路分析

确定需要爬取的数据是什么 在哪里?

  1. 图片
  2. 网页源代码

代码实现

  1. 发送网络请求 目标网站 https://www.acg-pixiv.com/tags/459.html
  2. 获取数据 网页源代码
  3. 提取数据 在网页源代码中提取所有的详情页链接
  4. 发送网络请求 详情页链接
  5. 获取数据 每一个详情页的网页源代码
  6. 提取数据 提取详情页中的图片链接
  7. 发送网络请求 图片链接
  8. 获取数据 图片二进制数据
  9. 保存数据
  10. 翻页爬取
    要把现在的代码推翻, 重新写

导入模块

import requests     # 发送网络请求的模块
import parsel       # 提取数据
import re

发送网络请求 目标网站

url_1 = 'https://www.acg-pixiv.com/tags/450.html'
response_1 = requests.get(url_1)
# <Response [200]>: 告诉我们访问成功了

获取数据 网页源代码

data_html_1 = response_1.text

提取数据 在网页源代码中提取所有的详情页链接

selector = parsel.Selector(data_html_1)
# 提取链接 属性内容 @属性名称 css xpath re 三节课 6-9个小时
href_list = selector.xpath('/html/body/div/div[1]/ul/li/a/@href').getall()
title_list = selector.xpath('/html/body/div/div[1]/ul/li/a/@title').getall()

发送网络请求 详情页链接

for info in zip(href_list, title_list):
    # 索引取值 元组
    url_2 = 'https://www.acg-pixiv.com' + info[1]

获取数据 每一个详情页的网页源代码

   # content? 获取二进制数据
   response_2 = requests.get(url_2).text

提取数据 提取详情页中的图片链接

    selector_2 = parsel.Selector(response_2)
    # 图片链接
    url = selector_2.xpath('/html/body/div/div[1]/div[1]/div/img[1]/@src').get()
    print(url)

发送网络请求 图片链接

    # 图片是二进制数据 网站 延迟太高了 实在是访问不到图片
    # 如果说我的请求超过了五秒钟没有给我反应? 直接报错
    # 当这个程序报错的时候
    try:
        img_data = requests.get(img_url, timeout=5).content
    except:
        # 图片链接改一下
        img_url = img_url.replace('800', '400')
        img_data = requests.get(img_url).content
    # 标题有问题 里面有一些特殊字符
    title = re.sub(r'[\\/:*?"<>|]', '_', info[1])
    print(f'---------正在爬取{title}---------')
    with open(f'img/{title}.jpg', mode='wb') as f:
        f.write(img_data)

ps:这是重翻写后得代码

好了,我的这篇文章就先到这里啦,有更多建议或问题可以评论区或私信我哦!一起加油努力叭(? ?_?)?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-09 19:26:19  更:2021-11-09 19:28:44 
 
开发: 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/15 22:44:17-

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