爬虫爬oj用户头像

import requests
import Queue
import urllib
import urllib2
import re
import requests
alreadyImg = set()
s = requests.session()
s.post("http://acm.hrbust.edu.cn/index.php?m=User&a=login"
, data={
    "user_name": "1304020306",
    "password": "123456"
})
r = s.get("http://acm.hrbust.edu.cn/index.php?m=User&a=userInfo&user_name=1404020214")
print r.text
urllist = Queue.Queue(maxsize = -1)
already = set()
url = "http://acm.hrbust.edu.cn/index.php?m=Ranklist&a=showRatingrank"
urllist.put(url)
reg = r‘a href="(.+?)"‘
httpre = re.compile(reg)
#reg = r‘src="(.+?\.jpg)"‘
reimg = r‘img class="large_avatar" src="([^>]+?\.(png|jpg))>?"‘
imgre = re.compile(reimg)
def putUrl(html):
    httplist = re.findall(httpre, html)
    for url in httplist:
        realurl = url
        if ‘http‘ not in url:
            realurl = "http://acm.hrbust.edu.cn/"+url
        #print realurl
        if url not in already:
            already.add(url)
            urllist.put(realurl)
x = 0;
def getImg(html):
    Imglist = re.findall(imgre, html)
    global x
    for Img in Imglist:
        Img = Img[0]
        if Img in alreadyImg:
            continue
        else:
            alreadyImg.add(Img)
        print Img
        if Img[0] != ‘h‘:
            Img = "http://acm.hrbust.edu.cn/" + Img
        #print "Img == " +Img
        try:
            urllib.urlretrieve(Img, ‘C:/%s.jpg‘ % x)
        except urllib2.URLError, e:
            pass
        else:
            #print "http://acm.hrbust.edu.cn/"+Img
            x += 1
while True != urllist.empty():
    url = urllist.get(urllist)
    print url
    try:
        r = s.get(url)
        html = r.text
        if "index.php?m=Ranklist&a=showRatingrank" in url:
            putUrl(html)
        getImg(html)
    except urllib2.URLError, e:
        pass
    except urllib2.HTTPError, e:
        pass
    else:
        pass

    #else:
    #    print url
    #print html
    #break

时间: 2024-10-16 13:47:25

爬虫爬oj用户头像的相关文章

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

环境 操作系统:Windows 7 Python版本:2.7.9 过程 打开谷歌浏览器: 打开1元夺宝商品列表页面: 随便点击一个商品,按F12调用开发者工具,选择“Network”标签,筛选“XHR”,再单击页面上的“夺宝参与记录”: 观察开发者工具,找到返回JSON格式数据的URL,如下图: 从上图的URL返回的JSON格式数据我们可以得知参与夺宝的用户数(totalCnt),每个用户的头像链接前缀(avatarPrefix): 随便点击一个用户,从开发者工具中可以得知用户头像的URL是由头

Java实现简易爬虫--抓取酷安网用户头像

爬虫思路 以酷安网用户粉丝较多的用户的个人中心为进口,获取该用户的全部粉丝的个人中心链接,用户头像链接和用户名,并分别放入队列.开启两个线程获取信息,一个线程获取队列中的用户的信息并放入队列,另一个线程负责从头像链接队列中取出链接并下载用户头像. 爬虫分析 用浏览器打开一个用户的粉丝列表(http://coolapk.com/u/[用户id]/contacts) 并查看源码 我们可以看到粉丝列表以HTML的ul标签显示,并且其id为dataList,ul标签中的各个li标签即为每一个用户的信息啦

Python编写网页爬虫爬取oj上的代码信息

OJ升级,代码可能会丢失. 所以要事先备份. 一开始傻傻的复制粘贴, 后来实在不能忍, 得益于大潇的启发和聪神的原始代码, 网页爬虫走起! 已经有段时间没看Python, 这次网页爬虫的原始代码是 python2.7版本, 试了一下修改到3.0版本, 要做很多包的更替,感觉比较烦,所以索性就在这个2.7版本上完善了. 首先观赏一下原始代码,我给加了一些注释: # -*- coding: cp936 -*- import urllib2 import urllib import re import

Python爬虫爬取知乎小结

博客首发至Marcovaldo's blog (http://marcovaldong.github.io/) 最近学习了一点网络爬虫,并实现了使用python来爬取知乎的一些功能,这里做一个小的总结.网络爬虫是指通过一定的规则自动的从网上抓取一些信息的程序或脚本.我们知道机器学习和数据挖掘等都是从大量的数据出发,找到一些有价值有规律的东西,而爬虫则可以帮助我们解决获取数据难的问题,因此网络爬虫是我们应该掌握的一个技巧. python有很多开源工具包供我们使用,我这里使用了requests.Be

网站用户头像剪裁上传完整案例

做为网站前段开发人员来说,用户头像剪裁和上传是一个很常用的功能,一般这个功能涉及到图片的放大,缩小,移动,旋转,和剪裁.下面我们来做一个完整的demo,剪裁后的图片以base64的形式返回,base64怎么上传到后台服务器,很简单,这里不做介绍. 图片的操作:手机端操作和其他手机图片应用操作没有任何区别. PC端:通过鼠标的滚轮是实现图片的放大缩小,长按左键移动鼠标实现图片的移动,双击图片现实图片的旋转. demo下载地址:下载1 下载2 在这个demo中,我们使用Jquery的插件(jquer

Python爬虫爬取博客园并保存

Python爬虫爬取博客园并保存        爬取博客园指定用户的文章修饰后全部保存到本地 首先定义爬取的模块文件: crawlers_main.py 执行入口 url_manager.py url管理器 download_manager.py 下载模块 parser_manager.py html解析器(解析html需要利用的内容) output_manager.py 输出html网页全部内容文件(包括css,png,js等) crawlers_main.py 执行入口 1 # coding

用Python爬虫爬取广州大学教务系统的成绩(内网访问)

用Python爬虫爬取广州大学教务系统的成绩(内网访问) 在进行爬取前,首先要了解: 1.什么是CSS选择器? 每一条css样式定义由两部分组成,形式如下: [code] 选择器{样式} [/code] 在{}之前的部分就是"选择器"."选择器"指明了{}中的"样式"的作用对象,也就是"样式"作用于网页中的哪些元素.可参考:http://www.w3school.com.cn/cssref/css_selectors.asph

python爬虫之User-Agent用户信息

python爬虫之User-Agent用户信息 爬虫是自动的爬取网站信息,实质上我们也只是一段代码,并不是真正的浏览器用户,加上User-Agent(用户代理,简称UA)信息,只是让我们伪装成一个浏览器用户去访问网站,然而一个用户频繁的访问一个网站很容易被察觉,既然我们可以伪装成浏览器,那么也同样可以通过UA信息来变换我们的身份. 整理部分UA信息 OperaMozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like G

爬虫 爬取糗事百科热门板块的信息

分析: 1.先查看返回的内容是否与显示的内容一样 2.再看页数的变化,每次会加一,总共13页,因此可以一次性构造地址列表 3.因此可直接结合 chrome插件 xpath helper 与 elemetns显示的内容进行定位要爬取的内容 用到的模块 requests+json+lxml+xpath 下面是代码: import requests import json from lxml import etree class QiubaiSpider: def __init__(self): se