爬虫实例——爬取1元夺宝用户头像(借助谷歌浏览器开发者工具)

环境

操作系统:Windows 7

Python版本:2.7.9

过程

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

代码

# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8‘)
‘‘‘
作者:昨夜星辰
‘‘‘

import re
import os
import requests
from bs4 import BeautifulSoup

# 创建一个用于存放头像的文件夹
folder = u‘头像‘
os.mkdir(folder)

# 用于存放用户的cid
cidList = []

# 用于头像计数
picCnt = 1

url = ‘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)
时间: 2024-08-24 17:37:45

爬虫实例——爬取1元夺宝用户头像(借助谷歌浏览器开发者工具)的相关文章

爬虫实例——爬取淘女郎的相册(通过谷歌浏览器的开发者工具找出规律快速爬取)

用正常的方式(selenium.PhantomJS.BeautifulSoup)爬取淘女郎相册不仅困难,效率很低,而且很容易卡死. 我通过谷歌浏览器的开发者工具找出每个页面的规律,快速获取每张照片的链接,再下载,这样效率就很高了. 过程 首页很简单,没有采用JS渲染,直接用requests就能获取完整的源代码,没什么说的. 淘女郎首页采用了JS渲染,直接用requests是获取不到完整的源代码的,此时可以打开谷歌浏览器的开发者工具,主要看“Network”,筛选出“XHR”,如下图: 从上图可知

python爬虫实例——爬取歌单

学习自http://www.hzbook.com/index.php/Book/search.html 书名:从零开始学python网络爬虫 爬取酷狗歌单,保存入csv文件 直接上源代码:(含注释) import requests #用于请求网页获取网页数据 from bs4 import BeautifulSoup #解析网页数据 import time #time库中的sleep()方法可以让程序暂停 import csv ''' 爬虫测试 酷狗top500数据 写入csv文件 ''' fp

爬虫实例——爬取煎蛋网OOXX频道(反反爬虫——伪装成浏览器)

煎蛋网在反爬虫方面做了不少工作,无法通过正常的方式爬取,比如用下面这段代码爬取无法得到我们想要的源代码. import requests url = 'http://jandan.net/ooxx' print requests.get(url).text 执行上述代码,你得到的结果应该跟我一样: 煎蛋网应该是通过检测headers来判断是否爬虫,要想获取正常的源代码,需要伪装成浏览器. # -*- coding: utf-8 -*- import re import requests from

爬虫实例——爬取淘女郎相册(通过selenium、PhantomJS、BeautifulSoup爬取)

环境 操作系统:CentOS 6.7 32-bit Python版本:2.6.6 第三方插件 selenium PhantomJS BeautifulSoup 代码 # -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8') ''' 作者:昨夜星辰 ''' import re import os import time import shutil import requests import sub

爬虫实例——爬取python百度百科相关一千个词条

调度器: import url_manager,html_downloader,html_parser,html_outputer class SpiderMain(object): """docstring for SpiderMain""" def __init__(self): self.urls = url_manager.UrlManager() self.downloader = html_downloader.HtmlDownloa

23个Python爬虫开源项目代码:爬取微信、淘宝、豆瓣、知乎、微博等

来源:全球人工智能 作者:SFLYQ 今天为大家整理了23个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快 1.WechatSogou [1]– 微信公众号爬虫. 基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典. github地址:https://github.com/Chyroc/WechatSogou 2.DouBanSpider [2]– 豆瓣

[Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)

一. 文章介绍 前一篇文章"[python爬虫] Selenium爬取新浪微博内容及用户信息"简单讲述了如何爬取新浪微博手机端用户信息和微博信息. 用户信息:包括用户ID.用户名.微博数.粉丝数.关注数等. 微博信息:包括转发或原创.点赞数.转发数.评论数.发布时间.微博内容等. 它主要通过从文本txt中读取用户id,通过"URL+用户ID" 访问个人网站,如柳岩: http://weibo.cn/guangxianliuya 因为手机端数据相对精简简单,所以采用输

用JAVA制作一个爬取商品信息的爬虫(爬取大众点评)

很多企业要求利用爬虫去爬取商品信息,一般的开发模型如下: for i=1;i<=最大页号;i++ 列表页面url=商品列表页面url+?page=i(页号) 列表页面=爬取(列表页面url) 商品链接列表=抽取商品链接(列表页面)  for 链接 in 商品链接列表: 商品页面=爬取(链接) 抽取(商品页面); 这样的模型看似简单,但是有一下几个问题: 1)爬虫没有线程池支持. 2)没有断点机制. 3)没有爬取状态存储,爬取商品网站经常会出现服务器拒绝链接(反问次数过多),导致一旦出现 拒绝链接

第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号

第三百三十节,web爬虫讲解2-urllib库爬虫-实战爬取搜狗微信公众号 封装模块 #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib from urllib import request import json import random import re import urllib.error def hq_html(hq_url): """ hq_html()封装的爬虫函数,自动启用了用户代理和ip