简单爬取CSDN下载资源信息

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


import urllib
import time
import re
import os
import sys

reload(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
        #获取具体URL
        url_list = re.findall(r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')", obj)
        for url in url_list:
            url_load='http://download.csdn.net'+url
            print 'URL: '+url_load
            fileurl.write('URL: http://download.csdn.net'+url+'\n')
        #获取资源标题
        #<a href="/detail/eastmount/8757243">MFC显示BMP图片</a>
        res_title = r'<a href=.*?>(.*?)</a>'
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值