博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
爬虫实例——爬取1元夺宝用户头像(借助谷歌浏览器开发者工具)
阅读量:4564 次
发布时间:2019-06-08

本文共 1729 字,大约阅读时间需要 5 分钟。

环境

操作系统:Windows 7

Python版本:2.7.9

过程

  1. 打开谷歌浏览器;
  2. 打开;
  3. 随便点击一个,按F12调用开发者工具,选择“Network”标签,筛选“XHR”,再单击页面上的“夺宝参与记录”;
  4. 观察开发者工具,找到返回JSON格式数据的URL,如下图:
  5. 从上图的URL返回的JSON格式数据我们可以得知参与夺宝的用户数(totalCnt),每个用户的头像链接前缀(avatarPrefix);
  6. 随便点击一个用户,从开发者工具中可以得知用户头像的URL是由头像链接前缀和“160.jpeg”组成的。

代码

# -*- coding: utf-8 -*-import sysreload(sys)sys.setdefaultencoding('utf-8')'''作者:昨夜星辰'''import reimport osimport requestsfrom bs4 import BeautifulSoup# 创建一个用于存放头像的文件夹folder = u'头像'os.mkdir(folder)# 用于存放用户的cidcidList = []# 用于头像计数picCnt = 1url = 'http://1.163.com/list.html'bs = BeautifulSoup(requests.get(url).text, 'lxml')for div in bs('div', 'w-goods w-goods-l w-goods-ing'):    gid = div['data-gid']    period = div['data-period']    url = 'http://1.163.com/record/getDuobaoRecord.do?pageNum=1&pageSize=50&totalCnt=0&gid=%s&period=%s' % (gid, period)    json = requests.get(url).json()    totalCnt = json['result']['totalCnt']    for pageNum in range(1, totalCnt / 50 + 1):        url = 'http://1.163.com/record/getDuobaoRecord.do?pageNum=%d&pageSize=50&totalCnt=%d&gid=%s&period=%s' % (pageNum, totalCnt, gid, period)        json = requests.get(url).json()        for _list in json['result']['list']:            cid = _list['user']['cid']            if cid in cidList:                continue            cidList.append(cid)            avatarPrefix = _list['user']['avatarPrefix']            if avatarPrefix:                url = avatarPrefix + '160.jpeg'                filename = folder + '\\' + re.search(r'.*/(.*)', url).group(1)                print u'正在保存第%d个头像...' % picCnt                picCnt += 1                with open(filename, 'wb') as f:                    f.write(requests.get(url).content)

 

转载于:https://www.cnblogs.com/yestreenstars/p/5565245.html

你可能感兴趣的文章
Django:评论文章后局部刷新评论区
查看>>
0.数据结构学习笔记大纲
查看>>
Springboot下事务管理的简单使用
查看>>
当css样式表遇到层
查看>>
349. Intersection of Two Arrays
查看>>
219. Contains Duplicate II
查看>>
Redis的并发竞争问题
查看>>
ABAP开源项目清单
查看>>
T-SQL基础--chp10可编程对象学习笔记[上]
查看>>
unity 打开文件夹并鼠标选中某文件
查看>>
TCP/IP协议 三次握手与四次挥手
查看>>
归档日志路径
查看>>
PHP制作验证码
查看>>
安卓|五大逆向软件下载
查看>>
《java基础知识》Java变量的声明、初始化和作用域
查看>>
[转]Windows Shell编程 第十五章【来源:http://blog.csdn.net/wangqiulin123456/article/details/7988016】...
查看>>
iOS Keychain,SSKeychain,使用 理解 原理
查看>>
drupal CVE-2018-7600 复现
查看>>
JAVA遇见HTML——JSP篇:JSP内置对象(上)
查看>>
Spring初始化Bean或销毁Bean前执行操作的方式
查看>>