这是一篇Python爬取CSDN下载资源信息的例子,主要是通过urllib2获取CSND某个人所有资源的资源URL、资源名称、分数等信息;写这篇文章的原因是我想获取自已的资源所有的评论信息,但是由于评论采用JS临时加载,所以这篇文章先简单介绍如何人工分析HTML页面爬取信息。

import urllib
import time
import re
import os
import sysreload(sys)
sys.setdefaultencoding('gbk')#**************************************************
#第一步 遍历获取每页对应主题的URL
#http://download.csdn.net/user/eastmount/uploads/1
#http://download.csdn.net/user/eastmount/uploads/8
#**************************************************num=1 #记录资源总数 共46个资源
number=1 #记录列表总数1-8
fileurl=open('csdn_url.txt','w+')
fileurl.write('****************获取资源URL*************\n\n')while number<9:url='http://download.csdn.net/user/eastmount/uploads/' + str(number)fileurl.write('下载列表URL:'+url+'\n\n')print unicode('下载列表URL:'+url,'utf-8')content=urllib.urlopen(url).read()open('csdn.html','w+').write(content)#获取包含URL块内容 匹配需要计算</div>个数start=content.find(r'<div class="list-container mb-bg">')end=content.find(r'<div class="page_nav">')cutcontent=content[start:end]#print cutcontent#获取块内容中URL#形如<dt><div><img 图标></div><h3><a href>标题</a></h3></dt>res_dt = r'<dt>(.*?)</dt>'m_dt =  re.findall(res_dt,cutcontent,re.S|re.M)for obj in m_dt:#记录URL数量print '******************************************'print '第'+str(num)+'个资源'fileurl.write('******************************************\n')fileurl.write('第'+str(num)+'个资源\n')num = num +1#获取具体URLurl_list = re.findall(r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')", obj)for url in url_list:url_load='http://download.csdn.net'+urlprint 'URL: '+url_loadfileurl.write('URL: http://download.csdn.net'+url+'\n')#获取资源标题#<a href="/detail/eastmount/8757243">MFC显示BMP图片</a>res_title = r'<a href=.*?>(.*?)</a>'title = re.findall(res_title,obj,re.S|re.M)for t in title:print unicode('Title: ' + t,'utf-8')fileurl.write('Title: ' + t +'\n')#**************************************************#第二步 遍历具体资源的内容及评论#http://download.csdn.net/detail/eastmount/8785591#**************************************************#定位指定结构化信息盒Infoboxresources = urllib.urlopen(url_load).read()open('resource.html','w+').write(resources)start_res=resources.find(r'<div class="wraper-info">')end_res=resources.find(r'<div class="enter-link">')infobox=resources[start_res:end_res]#获取资源积分、下载次数、资源类型、资源大小(前4个<span></span>)res_span = r'<span>(.*?)</span>'m_span = re.findall(res_span,infobox,re.S|re.M)print '资源积分: '+m_span[0]fileurl.write('资源积分: ' + m_span[0] +'\n')print '下载次数: '+m_span[1]fileurl.write('下载次数: ' + m_span[1] +'\n')print '资源类型: '+m_span[2]fileurl.write('资源类型: ' + m_span[2] +'\n')print '资源大小: '+m_span[3]fileurl.write('资源大小: ' + m_span[3] +'\n')#**************************************************#第三步 如何获取评论#http://jeanphix.me/Ghost.py/#http://segmentfault.com/q/1010000000143340#http://casperjs.org/#**************************************************else:fileurl.write('******************************************\n\n')print '******************************************\n'print 'Load Next List\n'number = number+1 #列表加1
#退出所有循环
else:fileurl.close()

显示结果: 显示内容包括资源URL、资源标题、资源积分、下载次数、资源类型和资源大小:

比如现在爬取郭霖大神的资源信息,其中页面链接如下:(共7页)
              http://download.csdn.net/user/sinyu890807/uploads/1
              http://download.csdn.net/user/sinyu890807/uploads/7
简单修改Python源代码URL后,下载页面如下图所示:

运行结果如下:

HTML分析:首先,获取每列中的所有资源的URL和标题,通过分析源代码。

<dt><div class="icon"><img src="/images/minetype/rar.gif" title="rar文件"></div><div class="btns"></div>  <h3><a href="/detail/eastmount/8772951">MFC 图像处理之几何运算 图像平移旋转缩放镜像(源码)</a><span class="points">0</span></h3>
</dt>
<dd class="meta">上传者:<a class="user_name" href="/user/eastmount">eastmount</a>| 上传时间:2015-06-04| 下载26次
</dd>
<dd class="intro">该资源主要参考我的博客【数字图像处理】六.MFC空间几何变换之图像平移、镜像、旋转缩放详解,主要讲述基于VC++6.0 MFC图像处理的应用知识,要通过MFC单文档视图实现显示BMP图片。
</dd>
<dd class="tag"><a href="/tag/MFC">MFC</a><a href="/tag/%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86">图像处理</a><
</dd>

对应的HTML显示如下图所示:

简单爬取CSDN下载资源信息相关推荐

  1. [Python学习] 简单爬取CSDN下载资源信息

            这是一篇Python爬取CSDN下载资源信息的例子,主要是通过urllib2获取CSDN某个人所有资源的资源URL.资源名称.下载次数.分数等信息:写这篇文章的原因是我想获取自己的资源 ...

  2. 简单爬取阿里巴巴商品信息

    先码为敬 import requests import re def getHTMLText(url)://这里已经入门python爬虫的应该都知道了,这就是个爬取阿里商品全部信息的函数     tr ...

  3. [python爬虫] BeautifulSoup和Selenium简单爬取知网信息测试

    作者最近在研究复杂网络和知识图谱内容,准备爬取知网论文相关信息进行分析,包括标题.摘要.出版社.年份.下载数和被引用数.作者信息等.但是在爬取知网论文时,遇到问题如下:   1.爬取内容总为空,其原因 ...

  4. [Python爬虫] Selenium+Phantomjs动态获取CSDN下载资源信息和评论

    前面几篇文章介绍了Selenium.PhantomJS的基础知识及安装过程,这篇文章是一篇应用.通过Selenium调用Phantomjs获取CSDN下载资源的信息,最重要的是动态获取资源的评论,它是 ...

  5. Python爬虫:通过爬取CSDN博客信息,学习lxml库与XPath语法

    目录 lxml库 lxml基本用法 解析XML文件 解析HTML文件 XPath 什么是XPath XPath语法 XPath实战 选取某节点的所有子孙节点 选取某节点的所有子节点 通过属性选取某节点 ...

  6. 简单爬虫,爬取天猫商品信息

    前言 这是我第一次用Java来写爬虫项目,研究的也不是很透彻,所以爬虫技术的理论方面的就不说太多了. 主要还是以如何爬取商品信息为主,爬取最简单的商品信息,给出大概的思路和方法. 对于没有反爬技术的网 ...

  7. (55)-- 简单爬取人人网个人首页信息

    # 简单爬取人人网个人首页信息 from urllib import requestbase_url = 'http://www.renren.com/964943656' headers = {&q ...

  8. 实现一个go语言的简单爬虫来爬取CSDN博文(一)

    http://blog.csdn.net/tyBaoErGe/article/details/50375802?hmsr=studygolang.com&utm_medium=studygol ...

  9. 用python爬取基金网信息数据,保存到表格,并做成四种简单可视化。(爬虫之路,永无止境!)

    用python爬取基金网信息数据,保存到表格,并做成四种简单可视化.(爬虫之路,永无止境!) 上次 2021-07-07写的用python爬取腾讯招聘网岗位信息保存到表格,并做成简单可视化. 有的人留 ...

最新文章

  1. iphone 一些小游戏.
  2. 我自学python的路-Python 学习路线(非常适合小白的入门级教程)
  3. 尝鲜 workerize 源码
  4. JZOJ 5952. 【NOIP2018模拟11.5A组】凯旋而归
  5. 通过配置文件避免硬编码的一个例子
  6. IOS开发基础之使用XCode12快速生成代码段
  7. 社工库网址与制作方法
  8. iOS 获取当前月份的天数(转)
  9. 《React Native 精解与实战》书籍连载「React Native 网络请求与列表绑定」
  10. 理解node.js(Understanding node.js)
  11. 非结构化数据和结构化数据提取
  12. 如何设计一个优秀基表结构
  13. 虚拟机专用win xp 系统 ios
  14. 大学英语四级考试大纲
  15. Javaweb常见面试题
  16. 简单的收支记账软件的实现详细解释(不连接数据库)
  17. dw网页制作的基本步骤_网页制作一般使用哪些工具?DW使用方法教学?
  18. OpenCV C++实现树结构可视化(画出一棵四叉树)
  19. ASP.net 简单登录界面
  20. Types of Data

热门文章

  1. Task 06 数据增强;模型微调;目标检测基础 学习笔记
  2. viewport窥视
  3. 龙尚4g模块U9300C在rk3368移植适配记录
  4. 40岁程序员写出租车一键下单电话叫车软件后被发帖骂骗子写得太烂
  5. 染发·唇彩·红润皮肤·点睛·衣服移花接木(原创)
  6. 各位学弟学妹,别再看教材了,时间复杂度看这篇就好了
  7. python生成手写文字图片_使用生成对抗网络(GAN)生成手写字
  8. 语义分割模型库segmentation_models_pytorch的详细使用介绍
  9. 人像分割PP-HumanSeg模型onnx C++ windows部署
  10. 如何在3-5分钟之内搭建好PC/H5网站、商城、小程序、官微名片、独立后台、全员营销APP?