python爬虫,g-mark网站图片数据爬取及补坑
应用python对g-mark网站图片数据爬取,同时但对于数据抓取失败的图片进行补坑(重新爬取操作),由于是日本网站,没有梯子访问的话,特别容易访问超时,比较合适的补坑操作是直接将数据采集到数据库,而本渣渣这里是采集保存到本地,所有,一些保存的数据需要二次格式化处理!
爬取链接:https://www.g-mark.org/activity/2020/best100.html
第三方库:requests,fake_useragent,lxml
爬取关键点
1.requests访问超时重试的应用
访问超时重试,requests已经打包好,可以直接调用,很方便!
from requests.adapters import HTTPAdapters = requests.Session()
s.mount('http://', HTTPAdapter(max_retries=3))
s.mount('https://', HTTPAdapter(max_retries=3))
2.xpaht 关键节点获取数据
链接节点
urllists=req.xpath('//ul[@class="itemList listB2"]/li/a/@href')
信息节点
basicinfos=req.xpath('//dl[@class="basicinfo"]//text()')
这里“//”,代表获取该节点元素下所有的数据内容!
图片节点
photos=req.xpath('//ul[@class="photo"]/li/a/img/@src')
3.数据格式化处理
网址拼接
parse_url='https://www.g-mark.org{}'.format(url)
数据过滤,整理
for basicinfo in basicinfos:if basicinfo != '\r\n\t\t\t':information=f'{information}:{basicinfo}'
过滤空白字符,整合拼接需要的字符内容数据,想要更加精细化数据,建议一个节点一个节点获取内容!
图片数据格式化处理
img_url=photo.split('?w')[0]
img_name=img_url[-24:]
print(img_url,img_name)
图片数据格式化,这里本渣渣指的是,图片链接及图片名的格式化处理,为下一步图片的下载及图片数据的保存做准备,这里需要结合实际情况进行处理,这里应用了切片处理及split函数!
4.访问超时出错的处理
访问超时出错,try-except,直接将出错的数据保存到本地txt中,方便数据补坑操作调用,这里没有保存到数据库,应该还是存储到数据库更加方便,大家看着操作吧!
链接访问超时出错处理
try:self.parse(parse_url,x)
except Exception as e:print(f"访问页面出错,错误代码:{e}")with open(f'fail_url.txt','a+') as f:f.write(f'{parse_url}-{x}\n')
图片下载超时出错处理
def dowm_img(img_url, img_name,x,y):try:r = self.s.get(img_url, headers=self.headers, timeout=10)with open(f'{x}_{y}_{img_name}', 'wb') as f:f.write(r.content)print(f"下载 {x}_{y}_{img_name} 图片成功")except Exception as e:print(f"下载图片出错,错误代码:{e}")with open(f'fail_img.txt', 'a+') as f:f.write(f'{img_url}-{x}_{y}_{img_name}\n')
5.数据补坑操作
出错数据记录,这里本渣渣用了“-”作为间隔存储数据,但是本身网站链接就有“-”字符,所以也算是自己给自己挖坑,在数据读取后,数据格式化处理费了点功夫,这类失误应该尽量避免!
出错数据读取
path=r'b\fail_img.txt'
with open(path,'r') as f:img_datas=f.readlines()print(len(img_datas))
数据处理
img_data=img_data.split()[0]
img_url=f"{img_data.split('-')[0]}-{img_data.split('-')[1]}"
img_names=img_data.split('-')[2]
x=img_names.split("_")[0]
y=img_names.split("_")[1]
img_name=img_names[-24:]
print(img_url,img_name,x,y)
函数调用
数据补坑,直接调用写好的类,初始化操作,直接调用相关的函数,爽歪歪!
from gm import Gmark
spider=Gmark() #初始化类
spider.dowm_img(img_url,img_name,x,y) #图片下载函数调用
spider.parse(url, x) #链接爬取函数调用
以上都是渣渣瞎bb,仅供参考!
完整源码获取
关注本渣渣微信公众号:二爷记
后台回复:g-mark
相关阅读:
类及数据库的应用,G-MARK网站数据Python爬虫系统的构建
一脸蒙蔽,
对比以前写的,
怎么感觉代码越写越渣了?!
python爬虫,g-mark网站图片数据爬取及补坑相关推荐
- Python爬虫《自动化学报》数据爬取与数据分析
Python爬虫<自动化学报>数据爬取与数据分析 文章目录 Python爬虫<自动化学报>数据爬取与数据分析 前言 一.代码 二.结果展示 三.爬虫实现 1.准备 2.获取网页 ...
- Python爬虫-CSDN博客排行榜数据爬取
文章目录 前言 网络爬虫 搜索引擎 爬虫应用 谨防违法 爬虫实战 网页分析 编写代码 运行效果 反爬技术 前言 开始接触 CTF 网络安全比赛发现不会写 Python 脚本的话简直寸步难行--故丢弃 ...
- (python爬虫)新浪新闻数据爬取与清洗+新浪新闻数据管理系统+MySQL
新浪新闻数据爬取与清洗+新浪新闻数据管理系统 设计要求 新浪新闻数据爬取与清洗 基本要求:完成新浪新闻排行中文章的数据爬取,包括标题.媒体.时间.内容. 进阶要求:对最近一周出现次数最多的关键字排名并 ...
- python爬虫网页中的图片_Python爬取网页中的图片(搜狗图片)详解
前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: 我们这里以sogou作为爬取的对象. 首先我们进入搜狗图片http://pic.s ...
- Python爬虫实习笔记 | Week4 项目数据爬取与反思
2018/11/05 1.所思所想: 今天我把Python爬虫实战这本书Chapter6看完,很有感触的一点是,书本中对爬虫实现的模块化设计很给我灵感,让我对项目中比较无语的函数拼接有了解决之道,内省 ...
- python爬虫多久能学会-不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据...
原标题:不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方 ...
- python爬取app播放的视频,Python爬虫工程师必学——App数据抓取实战视频教程
爬虫分为几大方向,WEB网页数据抓取.APP数据抓取.软件系统数据抓取.本课程主要为同学讲解如何用python实现App数据抓取,课程从开发环境搭建,App爬虫必备利器详解,项目实战,到最后的多App ...
- 基于python爬虫————静态页面和动态页面爬取
基于python爬虫----静态页面和动态页面爬取 文章目录 基于python爬虫----静态页面和动态页面爬取 1. 爬虫的原理 2. 用正则表达式匹配获取数据 3. 页面源码解析 4. 通过req ...
- python爬虫入门实战---------一周天气预报爬取_Python爬虫入门实战--------一周天气预报爬取【转载】【没有分析...
Python爬虫入门实战--------一周天气预报爬取[转载][没有分析 Python爬虫入门实战--------一周天气预报爬取[转载][没有分析] 来源:https://blog.csdn.ne ...
最新文章
- 单行文字压缩处理(要指定字体)
- EOS 源代码解读 (4)交易数据结构
- CodeForces - 570E(dp------------- Codeforces Round #316 (Div. 2)E
- 201671030107胡文艳实验三作业互评与改进报告
- Liferay 部署war包时候的deployDirectory 细节分析
- rails 共享变量_如何将Rails实例变量传递给Vue组件
- 求单链表结点的阶乘和
- 浅谈String str = 和 new String()的区别
- 贪心算法之加勒比海盗问题
- python如何跳出函数_python如何跳出函数
- OpenCV阈值分割
- Xutils-Android中数据存储和网络传输的框架
- 2020 年软件设计师考试上午真题
- Python 针对Excel操作
- PLM系统的经济收益
- 分享电脑中截图的五种方法(包括截长图)
- 不知道CAD坐标系,如何做到CAD与卫星影像无偏叠加?
- ubuntu格式化硬盘
- 2021消防设施操作员(初级)岗位考试模拟题库燃烧基础部分
- 机器学习(十六)推荐系统