简单爬取CSDN下载资源信息
这是一篇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下载资源信息相关推荐
- [Python学习] 简单爬取CSDN下载资源信息
这是一篇Python爬取CSDN下载资源信息的例子,主要是通过urllib2获取CSDN某个人所有资源的资源URL.资源名称.下载次数.分数等信息:写这篇文章的原因是我想获取自己的资源 ...
- 简单爬取阿里巴巴商品信息
先码为敬 import requests import re def getHTMLText(url)://这里已经入门python爬虫的应该都知道了,这就是个爬取阿里商品全部信息的函数 tr ...
- [python爬虫] BeautifulSoup和Selenium简单爬取知网信息测试
作者最近在研究复杂网络和知识图谱内容,准备爬取知网论文相关信息进行分析,包括标题.摘要.出版社.年份.下载数和被引用数.作者信息等.但是在爬取知网论文时,遇到问题如下: 1.爬取内容总为空,其原因 ...
- [Python爬虫] Selenium+Phantomjs动态获取CSDN下载资源信息和评论
前面几篇文章介绍了Selenium.PhantomJS的基础知识及安装过程,这篇文章是一篇应用.通过Selenium调用Phantomjs获取CSDN下载资源的信息,最重要的是动态获取资源的评论,它是 ...
- Python爬虫:通过爬取CSDN博客信息,学习lxml库与XPath语法
目录 lxml库 lxml基本用法 解析XML文件 解析HTML文件 XPath 什么是XPath XPath语法 XPath实战 选取某节点的所有子孙节点 选取某节点的所有子节点 通过属性选取某节点 ...
- 简单爬虫,爬取天猫商品信息
前言 这是我第一次用Java来写爬虫项目,研究的也不是很透彻,所以爬虫技术的理论方面的就不说太多了. 主要还是以如何爬取商品信息为主,爬取最简单的商品信息,给出大概的思路和方法. 对于没有反爬技术的网 ...
- (55)-- 简单爬取人人网个人首页信息
# 简单爬取人人网个人首页信息 from urllib import requestbase_url = 'http://www.renren.com/964943656' headers = {&q ...
- 实现一个go语言的简单爬虫来爬取CSDN博文(一)
http://blog.csdn.net/tyBaoErGe/article/details/50375802?hmsr=studygolang.com&utm_medium=studygol ...
- 用python爬取基金网信息数据,保存到表格,并做成四种简单可视化。(爬虫之路,永无止境!)
用python爬取基金网信息数据,保存到表格,并做成四种简单可视化.(爬虫之路,永无止境!) 上次 2021-07-07写的用python爬取腾讯招聘网岗位信息保存到表格,并做成简单可视化. 有的人留 ...
最新文章
- iphone 一些小游戏.
- 我自学python的路-Python 学习路线(非常适合小白的入门级教程)
- 尝鲜 workerize 源码
- JZOJ 5952. 【NOIP2018模拟11.5A组】凯旋而归
- 通过配置文件避免硬编码的一个例子
- IOS开发基础之使用XCode12快速生成代码段
- 社工库网址与制作方法
- iOS 获取当前月份的天数(转)
- 《React Native 精解与实战》书籍连载「React Native 网络请求与列表绑定」
- 理解node.js(Understanding node.js)
- 非结构化数据和结构化数据提取
- 如何设计一个优秀基表结构
- 虚拟机专用win xp 系统 ios
- 大学英语四级考试大纲
- Javaweb常见面试题
- 简单的收支记账软件的实现详细解释(不连接数据库)
- dw网页制作的基本步骤_网页制作一般使用哪些工具?DW使用方法教学?
- OpenCV C++实现树结构可视化(画出一棵四叉树)
- ASP.net 简单登录界面
- Types of Data
热门文章
- Task 06 数据增强;模型微调;目标检测基础 学习笔记
- viewport窥视
- 龙尚4g模块U9300C在rk3368移植适配记录
- 40岁程序员写出租车一键下单电话叫车软件后被发帖骂骗子写得太烂
- 染发·唇彩·红润皮肤·点睛·衣服移花接木(原创)
- 各位学弟学妹,别再看教材了,时间复杂度看这篇就好了
- python生成手写文字图片_使用生成对抗网络(GAN)生成手写字
- 语义分割模型库segmentation_models_pytorch的详细使用介绍
- 人像分割PP-HumanSeg模型onnx C++ windows部署
- 如何在3-5分钟之内搭建好PC/H5网站、商城、小程序、官微名片、独立后台、全员营销APP?