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

python零基础爬虫 分享高清优秀插画(这是个正经得网站),第1张

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)
# : 告诉我们访问成功了
获取数据 网页源代码
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:这是重翻写后得代码

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5159575.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存