一、检查

首先进入该网站的https://www.gamersky.com/robots.txt页面

给出提示:

弹出错误页面

  注:

  • 网络爬虫:自动或人工识别robots.txt,再进行内容爬取
  • 约束性:robots协议建议但非约束性,不遵守可能存在法律风险

如果一个网站不设置robots协议,说明所有内容都可以爬取,所以该网站为可爬取内容。

二、实现

源程序如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File  : HtmlParser.py
# @Author: 赵路仓
# @Date  : 2020/2/28
# @Desc  : 爬取游民星空网站每周精选壁纸
# @Contact : 398333404@qq.com import requests
from bs4 import BeautifulSoup
import os
import re# 网址
url = "http://so.gamersky.com/all/news?s=%u58c1%u7eb8%u7cbe%u9009&type=hot&sort=des&p="
# 请求头
head = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'
}# 检查是否存在filePath路径的文件夹,若无则创建,若有则不执行
def createFile(filePath):if os.path.exists(filePath):print('%s:存在' % filePath)else:try:os.mkdir(filePath)print('新建文件夹:%s' % filePath)except:print("创建文件夹失败!")# 获取每周壁纸的主题超链接
def href(url):try:path = "D:/img"createFile(path)# 清空html_href.txt的内容f_init = open(path + '/html_href.txt', 'w', encoding='utf-8')f_init.write("")f_init.close()f = open(path + '/html_href.txt', 'a+', encoding='utf-8')for i in range(1, 12):r = requests.get(url + str(i))r.encoding = r.apparent_encodingsoup = BeautifulSoup(r.text, 'html.parser')hrefs = soup.find_all("div", {"class": "link"})for h in hrefs:print(h.string)# 写入txt文件f.write(h.string + '\n')f.close()print("爬取成功!")except:print("爬取壁纸主题失败!")# 读取html_href(主题地址超链接)并写入img_hef(图片地址)
def read():try:path = "D:/img"f_read = open(path + '/html_href.txt', 'r+', encoding='utf-8')# 清空img_href.txt的内容f_init = open(path + '/img_href.txt', 'w', encoding='utf-8')f_init.write("")f_init.close()# 读取txt文件内容f_writer = open(path + '/img_href.txt', 'a+', encoding='utf-8')number=1for line in f_read:try:line = line.rstrip("\n")r = requests.get(line, headers=head, timeout=3)soup = BeautifulSoup(r.text, 'html.parser')imgs = soup.find_all("p", {"align": "center"})try:for i in imgs:print(re.sub(r'http.*shtml.', '', i.find("a").attrs['href'])+" 当前第"+str(number)+"张图片!")f_writer.write(re.sub(r'http.*shtml.', '', i.find("a").attrs['href']) + '\n')number+=1except:print("图片地址出错!")except:print("超链接出错!")f_read.close()f_writer.close()print("共有"+str(number)+"个图片地址!")except:print("读取html_href并写入img_href过程失败!!")def save_img():path = "D:/img/"img_path="D:/img/images/"createFile(path)f_read = open(path + 'img_href.txt', 'r+', encoding='utf-8')number = 1for line in f_read:try:line = line.rstrip("\n")# 根据个数顺序重命名名称f_write = open(img_path + str(number) + '.jpg', 'wb')r = requests.get(line)# 打印状态码print(r.status_code)# 如果图片地址有效则下载图片状态码200,否则跳过。if r.status_code == 200:f_write.write(r.content)# 若保存成功,则命名顺序+1number += 1print("当前保存第" + str(number) + "张图片。")f_write.close()except:print("下载图片出错!!")f_read.close()if __name__ == "__main__":href(url)read()save_img()
# 测试下载图片↓
# save_img("https://img1.gamersky.com/image2019/04/20190427_ljt_red_220_3/gamersky_001origin_001_201942716489B7.jpg","D:/img/1.jpg")

  路径无需改动,但有需求可自行更改。

  在爬取过程中,在游民星空网站的壁纸栏是通过js跳转,页面不翻页的模式,但后来可以通过搜索——壁纸到达如下界面:

三、实现步骤

  • 然后通过 href(url) 函数爬取每周的大标题写入 html_href.txt 中
  • 通过 read() 读取写入的标题超链接,将爬取的图片地址写入  img_href.txt 中。
  • 最后一步,通过 save_img() 函数读取图片地址,下载壁纸图片。

四、效果

    至此完成!!                

[Python]爬取 游民星空网站 每周精选壁纸(1080高清壁纸) 网络爬虫相关推荐

  1. python爬虫(2)爬取游民星空网的图片

    python 入门级别爬虫 目的:爬取游民星空的图片 前两天在游民星空看到几张美图,然后就想把它保存下来,但是一个一个的右键保存,太不爽了,身为一个程序源,一个码农,怎么能这么低级的保存呢? 然后最近 ...

  2. 教你用Python爬取表情包网站下的全部表情图片

    教你用Python爬取表情包网站下的全部表情图片 又是我啦~~~ 最近上网的时候老看到有人用Python爬取表情包,心痒痒自己也整了一个. 使用到的扩展库:BeautifulSoup, request ...

  3. python 爬取猫眼电影网站数据

    完整代码下载:https://github.com/tanjunchen/SpiderProject/tree/master/maoyan python 爬取 movie.douban.com 网站 ...

  4. python爬取安居客网站上北京二手房数据

    目标:爬取安居客网站上前10页北京二手房的数据,包括二手房源的名称.价格.几室几厅.大小.建造年份.联系人.地址.标签等. 网址为:https://beijing.anjuke.com/sale/ B ...

  5. 手把手教你用python爬取人人贷网站借款人信息

    P2P是近年来很热的一个行业,由于这个行业在国内兴起才不久,国内的很多学者对这个行业都兴趣盎然,在大学研究互联网金融的学者更是有一大群.小编是学金融出身,深知数据在做学术研究的重要性,之前有不少学互联 ...

  6. Python爬取某音乐网站

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 爬取某音乐网站,我们先搜索歌曲,然后随意点进一首歌,然后在新弹出的歌曲页面按F12开始抓包,并刷新 ...

  7. 利用python爬取实习僧网站上的数据

    最近在找实习,就顺便想到用python爬取一些职位信息看看,有哪些岗位比较缺人. #_*_coding:utf-8_*_import requests from bs4 import Beautifu ...

  8. Python爬取斗鱼直播网站信息

    一.需求 爬取斗鱼直播网站信息,如直播名字.主播名字.热度.图片和房间网址,将这些数据保存到csv文件中,并单独创建文件夹保存图片. 斗鱼直播网址:https://www.douyu.com/g_LO ...

  9. 爬取投票页面,音乐与视频,高清图片

    首先一般情况下爬虫爬取网页数据不违法,但有些收费或者限制下载次数的音乐网站,视频网站等数据很容易爬取到,我最近就爬取了好几个网站的音乐与视频,也用自动化模块分析了QQ空间,写了新型冠状肺炎的数据清洗与 ...

最新文章

  1. 从条纹边框的实现谈盒子模型(转)
  2. GitHub 博客-- Jekyll--代码高亮,Liquid 转义字符
  3. python基本语法语句-python基本语句有哪些
  4. C# winform 多线程中创建等待窗体
  5. SpringBoot项目集成Mybatis Plus(一)多数据源配置
  6. Kotlin教程 - 收藏集 - 掘金
  7. 济宁与华为企业云战略合作携手推进云计算产业发展
  8. 计算机算法和算法复杂度
  9. python中sample()函数_PandasDataframe.sample()使用介绍
  10. linux 软键盘输入密码,Linux系统中使用屏幕键盘的方法
  11. 关于GPS坐标系和地图定位偏差
  12. flex C#在线拍照
  13. 基于Python的百度地图慧眼迁徙数据爬取
  14. GCD中dispatch_apply函数的使用方法
  15. 《团队领导力》培训笔记
  16. AUTOSAR MCAL详解:FLS
  17. 电商52个专业名词解释大汇总
  18. 转载:Android Studio 快捷键
  19. 用原生js实现移动端图片轮播
  20. 【机器学习】多元函数梯度的理解

热门文章

  1. mybatis中resultMap返回类型
  2. java keycode列表_event.keyCode对照表
  3. 基于JAVA甜心驿站饮品信息管理计算机毕业设计源码+数据库+lw文档+系统+部署
  4. 局域网安全-MAC Flood/Spoof
  5. wifipineapple执行dnsspoof
  6. 思科商用路由器存在漏洞,无需认证即可拷贝敏感信息...
  7. C语言项目--苹果产品管理系统
  8. 米软科技单病种质量管理智能上报系统之版本区分
  9. 汽车十大轮胎排名韩泰轮胎:这份秋冬季汽车轮胎挑选攻略请查收!
  10. ps图片基本操作记录