1. import requests
  2. import Queue
  3. import urllib
  4. import urllib2
  5. import re
  6. import requests
  7. alreadyImg = set()
  8. s = requests.session()
  9. s.post("http://acm.hrbust.edu.cn/index.php?m=User&a=login"
  10. , data={
  11. "user_name": "",
  12. "password": ""
  13. })
  14. r = s.get("http://acm.hrbust.edu.cn/index.php?m=User&a=userInfo&user_name=1404020214")
  15. print r.text
  16. urllist = Queue.Queue(maxsize = -1)
  17. already = set()
  18. url = "http://acm.hrbust.edu.cn/index.php?m=Ranklist&a=showRatingrank"
  19. urllist.put(url)
  20. reg = r'a href="(.+?)"'
  21. httpre = re.compile(reg)
  22. #reg = r'src="(.+?\.jpg)"'
  23. reimg = r'img class="large_avatar" src="([^>]+?\.(png|jpg))>?"'
  24. imgre = re.compile(reimg)
  25. def putUrl(html):
  26. httplist = re.findall(httpre, html)
  27. for url in httplist:
  28. realurl = url
  29. if 'http' not in url:
  30. realurl = "http://acm.hrbust.edu.cn/"+url
  31. #print realurl
  32. if url not in already:
  33. already.add(url)
  34. urllist.put(realurl)
  35. x = 0;
  36. def getImg(html):
  37. Imglist = re.findall(imgre, html)
  38. global x
  39. for Img in Imglist:
  40. Img = Img[0]
  41. if Img in alreadyImg:
  42. continue
  43. else:
  44. alreadyImg.add(Img)
  45. print Img
  46. if Img[0] != 'h':
  47. Img = "http://acm.hrbust.edu.cn/" + Img
  48. #print "Img == " +Img
  49. try:
  50. urllib.urlretrieve(Img, 'C:/%s.jpg' % x)
  51. except urllib2.URLError, e:
  52. pass
  53. else:
  54. #print "http://acm.hrbust.edu.cn/"+Img
  55. x += 1
  56. while True != urllist.empty():
  57. url = urllist.get(urllist)
  58. print url
  59. try:
  60. r = s.get(url)
  61. html = r.text
  62. if "index.php?m=Ranklist&a=showRatingrank" in url:
  63. putUrl(html)
  64. getImg(html)
  65. except urllib2.URLError, e:
  66. pass
  67. except urllib2.HTTPError, e:
  68. pass
  69. else:
  70. pass
  71.  
  72. #else:
  73. # print url
  74. #print html
  75. #break

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

  1. 利用爬虫爬取指定用户的CSDN博客文章转为md格式,目的是完成博客迁移博文到Hexo等静态博客

    文章目录 功能 爬取的方式: 设置生成的md文件命名规则: 设置md文件的头部信息 是否显示csdn中的锚点"文章目录"字样,以及下面具体的锚点 默认false(因为csdn中是集 ...

  2. google搜索引擎爬虫爬网站原理

    google搜索引擎爬虫爬网站原理 一.总结 一句话总结:从几个大站开始,然后开始爬,根据页面中的link,不断爬 从几个大站开始,然后开始爬,根据页面中的link,不断加深爬 1.搜索引擎和数据库检 ...

  3. node:爬虫爬取网页图片

    代码地址如下:http://www.demodashi.com/demo/13845.html 前言 周末自己在家闲着没事,刷着微信,玩着手机,发现自己的微信头像该换了,就去网上找了一下头像,看着图片 ...

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

    用Python爬虫爬取广州大学教务系统的成绩(内网访问) 在进行爬取前,首先要了解: 1.什么是CSS选择器? 每一条css样式定义由两部分组成,形式如下: [code] 选择器{样式} [/code ...

  5. 简单的python爬虫--爬取Taobao淘女郎信息

    最近在学Python的爬虫,顺便就练习了一下爬取淘宝上的淘女郎信息:手法简单,由于淘宝网站本上做了很多的防爬措施,应此效果不太好! 爬虫的入口:https://mm.taobao.com/json/r ...

  6. python爬虫之User-Agent用户信息

    python爬虫之User-Agent用户信息 爬虫是自动的爬取网站信息,实质上我们也只是一段代码,并不是真正的浏览器用户,加上User-Agent(用户代理,简称UA)信息,只是让我们伪装成一个浏览 ...

  7. python3爬虫爬取网页思路及常见问题(原创)

    学习爬虫有一段时间了,对遇到的一些问题进行一下总结. 爬虫流程可大致分为:请求网页(request),获取响应(response),解析(parse),保存(save). 下面分别说下这几个过程中可以 ...

  8. Python爬虫|爬取喜马拉雅音频

    "GOOD Python爬虫|爬取喜马拉雅音频 喜马拉雅是知名的专业的音频分享平台,用户规模突破4.8亿,汇集了有声小说,有声读物,儿童睡前故事,相声小品等数亿条音频,成为国内发展最快.规模 ...

  9. Python爬虫爬取数据的步骤

    爬虫: 网络爬虫是捜索引擎抓取系统(Baidu.Google等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 步骤: 第一步:获取网页链接 1.观察需要爬取的多 ...

随机推荐

  1. 图论(KM算法,脑洞题):HNOI 2014 画框(frame)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABPoAAANFCAIAAABtIwXVAAAgAElEQVR4nOydeVxTV/r/n9ertaJEC4

  2. hihoCoder 1389 Sewage Treatment 【二分+网络流+优化】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛)

    #1389 : Sewage Treatment 时间限制:2000ms 单点时限:2000ms 内存限制:256MB 描述 After years of suffering, people coul ...

  3. i++和++i的老问题

    对于++j,该式是指先将j的值自加1,然后再取j的值.自增过后参与计算 i的值也为10:对于i++,该表达式是指先取i的值做运算,再将i加1.参见过计算后再自增

  4. CodeForces 592B

    题目链接: http://codeforces.com/problemset/problem/592/B 这个题目没啥说的,画图找规律吧,哈哈哈 程序代码: #include <cstdio&g ...

  5. bzoj 2324 [ZJOI2011]营救皮卡丘(floyd,费用流)

    2324: [ZJOI2011]营救皮卡丘 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1777  Solved: 712[Submit][Stat ...

  6. ural 1136. Parliament

    题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1136 题目描述:给定一个按照(左子树-右子树-根)(即先序)遍历序列的树,求其按照 右子 ...

  7. 356. Line Reflection

    首先找到X方向的中点,如果中点是一个点,那么分别从这个点开始往左右找就行:如果是一个区间,比如1 2之间,那么首先总点数得是偶数,然后以1和2往左右两边找就行.. 找的时候,有3种情况: 同时没找到, ...

  8. JPA query 基本语法解释

    详细语法官网去学习 -->> http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#reference Qu ...

  9. openresty安装lua和nginx相关

    server{ listen ; server_name a.com; index index.php; root /usr/share/nginx/html; location / { if (!- ...

  10. 为什么使用spring Struts 等框架开发

    转载自:http://www.cnblogs.com/sharpxiajun/p/3936268.html 今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入, ...