Code

# -*- coding:utf8 -*-
import string
import urllib2
import re
import time
import randomclass CSDN_Spider:def __init__(self,url):self.myUrl = urlself.datas = []print u"爬虫已启动...."def csdn(self):url = self.myUrl + "?viewmode=list"user_agents = ['Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11','Opera/9.25 (Windows NT 5.1; U; en)','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)','Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)','Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12','Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9',"Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Ubuntu/11.04 Chromium/16.0.912.77 Chrome/16.0.912.77 Safari/535.7","Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0 ",]agent = random.choice(user_agents)req = urllib2.Request(url)req.add_header('User-Agent', agent)req.add_header('Host', 'blog.csdn.net')req.add_header('Accept', '*/*')req.add_header('Referer', 'http://blog.csdn.net/djd1234567?viewmode=contents')req.add_header('GET', url)mypage = urllib2.urlopen(req).read().decode("utf8")#print mypagePagenum = self.page_counter(mypage)#print Pagenumself.find_data(self.myUrl,Pagenum)def page_counter(self,mypage):#<a href="/yangshangwei/article/list/11">尾页</a>myMatch = re.search(u'/article/list/(\d+?)">尾页</a>',mypage,re.S)if myMatch:Pagenum = int(myMatch.group(1))print u"爬虫报告:发现目录一共%d页" %Pagenumelse:Pagenum = 0print u"爬虫报告:没找到页面的数量"return Pagenumdef find_data(self,myurl,Pagenum):name = myurl.split("/")f = open(name[-1] + '.txt','w+')for i in range(1,Pagenum+1):print iprint u"爬虫报告:第%d页正在加载中......" % iurl = myurl + "/article/list/" + str(i)user_agents = ['Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11','Opera/9.25 (Windows NT 5.1; U; en)','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)','Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)','Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12','Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9',"Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Ubuntu/11.04 Chromium/16.0.912.77 Chrome/16.0.912.77 Safari/535.7","Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0 ",]agent = random.choice(user_agents)req = urllib2.Request(url)req.add_header('User-Agent', agent)req.add_header('Host', 'blog.csdn.net')req.add_header('Accept', '*/*')req.add_header('Referer', url)req.add_header('GET', url)mypage = urllib2.urlopen(req).read()myItems = re.findall(u'"><a href="/' + myurl.split("/")[-1] + '/article/details/(\d+?)" title="',mypage,re.S)print myItemsfor item in myItems:self.datas.append("http://blog.csdn.net/yangshangwei/article/details/" + item+"\n")#time.sleep(1)f.writelines(self.datas)f.close()print self.datasprint u"爬虫报告:txt文件生成,请在当前目录查看"url = "http://blog.csdn.net/yangshangwei"mySpider = CSDN_Spider(url)
mySpider.csdn()

运行

Python-爬取自己博客文章的URL相关推荐

  1. 阮一峰老师博客爬取与博客文章存储持久化方式的思考

    阮一峰老师博客爬取与博客文章存储持久化方式的思考 前言 博客文章存储持久化思考 文本形式存储 html形式存储 pdf形式存储 博客爬取思路 爬取思路一 爬取思路二 个人选择 pdf存储 结尾 前言 ...

  2. 【爬虫+数据可视化】Python爬取CSDN博客访问量数据并绘制成柱状图

    以下内容为本人原创,欢迎大家观看学习,禁止用于商业及非法用途,谢谢合作! ·作者:@Yhen ·原文网站:CSDN ·原文链接:https://blog.csdn.net/Yhen1/article/ ...

  3. Python 爬取51cto博客标题浏览量、评论量、收藏

    介绍 提到爬虫,互联网的朋友应该都不陌生,现在使用Python爬取网站数据是非常常见的手段,好多朋友都是爬取豆瓣信息为案例,我不想重复,就使用了爬取51cto博客网站信息为案例,这里以我的博客页面为教 ...

  4. 用selenium爬取csdn博客文章,并用4种方法提取数据

    为了方便susu学习selenium,下面代码用selenium爬取博客文章的标题和时间,并用selenium自带的解析,etree,bs4,scrapy框架自带的selector等4种方式来解析网页 ...

  5. C/C++ | Qt 实现爬虫功能,爬取CSDN博客文章

    话不多说,先看程序运行截图: 注意: 本人没有看过爬虫相关的书籍,第一次写这种程序,这个程序是半屌子的,原理很简单,没有学习过爬虫的朋友,也可以写. 程序思路如下: 1.下载要爬网站的页面. 2.用正 ...

  6. python 爬虫 爬取序列博客文章列表

    python中写个爬虫真是太简单了 import urllib.request from pyquery import PyQuery as PQ# 根据URL获取内容并解码为UTF-8 def ge ...

  7. python爬虫爬取csdn博客专家所有博客内容

    python爬虫爬取csdn博客专家所有博客内容: 全部过程采取自动识别与抓取,抓取结果是将一个博主的所有 文章存放在以其名字命名的文件内,代码如下 #coding:utf-8import urlli ...

  8. [python爬虫] 正则表达式使用技巧及爬取个人博客实例

    这篇博客是自己<数据挖掘与分析>课程讲到正则表达式爬虫的相关内容,主要简单介绍Python正则表达式爬虫,同时讲述常见的正则表达式分析方法,最后通过实例爬取作者的个人博客网站.希望这篇基础 ...

  9. python 写csv scrapy_scrapy爬虫框架实例一,爬取自己博客

    本篇就是利用scrapy框架来抓取本人的博客,博客地址:http://www.cnblogs.com/shaosks scrapy框架是个比较简单易用基于python的爬虫框架,相关文档:http:/ ...

最新文章

  1. 百度投资创维10亿,联手构建智能家居AI生态
  2. IC卡读卡器web开发,支持IE,Chrome,Firefox,Safari,Opera等主流浏览 器
  3. java中如何getchar_是否有与getchar等效的Java?
  4. 双非计算机考研推荐学校传菜电梯,22考研双非院校排名Top100,前3名竟然是这几所!...
  5. 高级Java开发人员的十大书籍
  6. 【华为云专家技术公开课】7月4日直播,报名观看赢取好礼
  7. jquery.event 研究学习之bind篇
  8. 解决谷歌浏览器书签同步问题
  9. html语言隔开的代码,2、HTML(示例代码)
  10. Md5,base64加密
  11. 基于MapGIS的GIS二次开发作业文档
  12. 如何加密保护PPT防止录屏和盗版?用iSpring suite PPT转HTML在线本地安全播放
  13. JETT(三)-多Sheet渲染
  14. Modularity(模块性)
  15. 关于使用腾讯乐固加固,涉及的签名及其他问题
  16. java 用验证码的形式验证邮箱
  17. java.io.IOException: 你的主机中的软件中止了一个已建立的连接。 (踩坑经历)
  18. 虚拟服务器 vmotion,vSphere vMotion能够同时迁移多少台虚拟机?
  19. 机器人的弊议论文_关于机器人利弊的议论文
  20. android帧动画倒放,GIF动态图怎么倒放_倒放GIF动态图的简单方法介绍_3DM手游

热门文章

  1. 安装modelsim
  2. mongo查看数据库空间大小
  3. python self
  4. python round函数_Python round() 函数
  5. 23. Leetcode 86. 分隔链表 (链表-基础操作类-分隔链表)
  6. 报错解决方法1:‘A GDAL API version must be specified.’
  7. Flink从入门到精通100篇(二十三)-Apache Flink在滴滴的应用与实践
  8. 深度学习核心技术精讲100篇(五十四)-阿里文娱多模态视频分类算法中的特征改进
  9. MySQL从入门到精通50讲(一)-MySQL数据库操作创建数据库及删除数据库
  10. Meanshift解析