python的正则与网页操作练习二:

import re
import urllib.request#51cto urlcode=gb18030class down51web:
s_url=''
s_blogid=''
s_blogpages=''
s_html=''
s_code=''
def __init__(self,url,code):
self.s_url=url
self.s_code=codedef get_html(self):
self.s_html=urllib.request.urlopen(self.s_url).read().decode(self.s_code)
return self.s_htmldef get_page(self,r_page):
if len(self.s_html) > 0:
m_pages=r_page.search(self.s_html)
if m_pages:
self.s_blogpages=m_pages.group(1)
return self.s_blogpagesdef get_blogid(self,r_blogid):
if len(self.s_html) > 0:
m_blogid=r_blogid.search(self.s_html)
if m_blogid:
self.s_blogid=m_blogid.group(1).split('/')[1]
return self.s_blogiddef get_blogpagelist(self):
bloglist=[]
if len(self.s_blogid)>0 and len(self.s_blogpages)>0:
for i in range(1,int(self.s_blogpages)+1):
bloglist.append(self.s_url+'/'+self.s_blogid+'/p-'+str(i))
return bloglistdef get_pagelist(self,r_list,url):
bloglist=[]
self.s_url=url
s_tmphtml=self.get_html()
if len(s_tmphtml) > 0:
bloglist=r_list.findall(s_tmphtml)
return bloglistr_page=re.compile('页数 \( [0-9]+/([0-9]+) \)(?=</div>)')
r_blogid=re.compile('(?<=<div class="pages">)<a href=([^>]*)>')r_list=re.compile('<h3 class="artTitle"><a href="([^"]*)">([^<]*)</a>')xx='http://hxw168.blog.51cto.com'hxw=down51web(xx,'gb18030')
hxw.get_html()
#print(hxw.s_html)
print(hxw.get_page(r_page))
print(hxw.get_blogid(r_blogid))list=hxw.get_blogpagelist()for i in list:
l1=hxw.get_pagelist(r_list,i)
for x in l1:
print(xx+x[0]+'-------'+x[1])

代码排版不正常

import re
import urllib.request
#51cto urlcode=gb18030
class down51web:s_url=''s_blogid=''s_blogpages=''s_html=''s_code=''def __init__(self,url,code):self.s_url=urlself.s_code=codedef get_html(self):self.s_html=urllib.request.urlopen(self.s_url).read().decode(self.s_code)return self.s_htmldef get_page(self,r_page):if len(self.s_html) > 0:m_pages=r_page.search(self.s_html)if m_pages:self.s_blogpages=m_pages.group(1)return self.s_blogpagesdef get_blogid(self,r_blogid):if len(self.s_html) > 0:m_blogid=r_blogid.search(self.s_html)if m_blogid:self.s_blogid=m_blogid.group(1).split('/')[1]return self.s_blogiddef get_blogpagelist(self):bloglist=[]if len(self.s_blogid)>0 and len(self.s_blogpages)>0:for i in range(1,int(self.s_blogpages)+1):bloglist.append(self.s_url+'/'+self.s_blogid+'/p-'+str(i))return bloglistdef get_pagelist(self,r_list,url):  bloglist=[]self.s_url=urls_tmphtml=self.get_html()if len(s_tmphtml) > 0: bloglist=r_list.findall(s_tmphtml)return bloglist r_page=re.compile('页数 \( [0-9]+/([0-9]+) \)(?=</div>)')
r_blogid=re.compile('(?<=<div class="pages">)<a href=([^>]*)>')r_list=re.compile('<h3 class="artTitle"><a href="([^"]*)">([^<]*)</a>')xx='http://hxw168.blog.51cto.com'hxw=down51web(xx,'gb18030')
hxw.get_html()
#print(hxw.s_html)
print(hxw.get_page(r_page))
print(hxw.get_blogid(r_blogid))list=hxw.get_blogpagelist()for i in list:l1=hxw.get_pagelist(r_list,i)for x in l1:print(xx+x[0]+'-------'+x[1])

结果如下:

>>> (executing lines 1 to 74 of "downweb.py")
4
8718136
http://hxw168.blog.51cto.com/8718136/1533205-------【python】简单的网页内容获取 - 有道翻译英文
http://hxw168.blog.51cto.com/8718136/1440229-------【文本处理】awk、sed使用 - 二
http://hxw168.blog.51cto.com/8718136/1436143-------【文本处理】sed的理解工具sedsed
http://hxw168.blog.51cto.com/8718136/1435310-------【文本处理】awk、sed使用 - 一
http://hxw168.blog.51cto.com/8718136/1424626-------【shell】oracle安装前环境设置
http://hxw168.blog.51cto.com/8718136/1424422-------【oracle】Oracle12c安装及一些使用问题
http://hxw168.blog.51cto.com/8718136/1419971-------【oracle】系统权限、对象权限、角色
http://hxw168.blog.51cto.com/8718136/1419736-------【oracle】模拟故障 - 参数修改导致无法启动oracle
http://hxw168.blog.51cto.com/8718136/1419733-------【oracle】表空间
http://hxw168.blog.51cto.com/8718136/1419236-------【oracle】数据库启动
http://hxw168.blog.51cto.com/8718136/1410362-------【1】oracle视频 - 流水帐笔记
http://hxw168.blog.51cto.com/8718136/1410179-------【基础服务】dns智能解析、view主从服务 -..
http://hxw168.blog.51cto.com/8718136/1409219-------【基础服务】简单理解DNS的递归、迭代查询..
http://hxw168.blog.51cto.com/8718136/1408946-------【基础应用】rsync简单使用
http://hxw168.blog.51cto.com/8718136/1408462-------【6】iptables理解 - 浅尝辄止
http://hxw168.blog.51cto.com/8718136/1408295-------【5】iptables理解 - mangle表
http://hxw168.blog.51cto.com/8718136/1405101-------【4】iptables理解 - nat表
http://hxw168.blog.51cto.com/8718136/1404942-------【3】iptables理解 - filter表
http://hxw168.blog.51cto.com/8718136/1404541-------【2】iptables理解 - 总体印象
http://hxw168.blog.51cto.com/8718136/1404463-------【1】iptables理解 - 练习环境搭建
http://hxw168.blog.51cto.com/8718136/1401483-------【5】puppet笔记 - defined类型、erb模板
http://hxw168.blog.51cto.com/8718136/1397872-------【4】puppet笔记 -  第一个简单模块
http://hxw168.blog.51cto.com/8718136/1396483-------【4】puppet笔记 - 数组、类
http://hxw168.blog.51cto.com/8718136/1396308-------【3】puppet笔记 - 变量、if、case、selector
http://hxw168.blog.51cto.com/8718136/1395869-------【2】puppet笔记 - package、service、use..
http://hxw168.blog.51cto.com/8718136/1395357-------【1】puppet笔记 - file资源
http://hxw168.blog.51cto.com/8718136/1395073-------【基础】yum本地源 - yum puppet-server为例
http://hxw168.blog.51cto.com/8718136/1394312-------【python】操作oracle数据库
http://hxw168.blog.51cto.com/8718136/1394303-------【基础】LVM简单使用 -  扩展缩小LV容量
http://hxw168.blog.51cto.com/8718136/1394089-------【基础】LVM简单使用 -  一
http://hxw168.blog.51cto.com/8718136/1393463-------【基础】linux添加新硬盘
http://hxw168.blog.51cto.com/8718136/1390593-------【8】nagios从零学习使用 - 编写自己的nag..
http://hxw168.blog.51cto.com/8718136/1390357-------【7】nagios从零学习使用 -  nrpe插件使用
http://hxw168.blog.51cto.com/8718136/1389588-------【6】nagios从零学习使用 - centreon发送..
http://hxw168.blog.51cto.com/8718136/1388191-------【5】nagios从零学习使用 - centreon使用c..
http://hxw168.blog.51cto.com/8718136/1387516-------【4】nagios从零学习使用 - centreon安装过程
http://hxw168.blog.51cto.com/8718136/1382079-------【3】nagios从零学习使用 - 监控 win主机
http://hxw168.blog.51cto.com/8718136/1380326-------【2】nagios从零学习使用 - cacti做图
http://hxw168.blog.51cto.com/8718136/1379795-------【shell】使用ping检测机器是否不在线
http://hxw168.blog.51cto.com/8718136/1379586-------【1】nagios从零学习使用 -  软件安装>>>

转载于:https://blog.51cto.com/hxw168/1533435

【python】获取51cto博客的文章列表相关推荐

  1. 企业shell面试题:获取51CTO博客列表按时间倒序排序

    企业shell面试题:获取51CTO博客列表倒序排序考试题 老男孩教育培训机构需求:需求入下: 请把http://oldboy.blog.51cto.com 地址中的所有博文,按照时间倒序列表如下: ...

  2. Python实现抓取CSDN博客首页文章列表

    1.使用工具: Python3.5 BeautifulSoup 2.抓取网站: csdn首页文章列表 http://blog.csdn.net/ 3.分析网站文章列表代码: 4.实现抓取代码: __a ...

  3. 老男孩51CTO博客博文列表整理版20170620更新

    老男孩51CTO博客博文列表整理版 (本文原自于一道考试题http://oldboy.blog.51cto.com/2561410/1860985) 老男孩教育运维脱产班35期  刘同学 2017-0 ...

  4. python爬虫抓取51cto博客大牛的文章保存到MySQL数据库

    脚本实现:获取51cto网站某大牛文章的url,并存储到数据库中. #!/usr/bin/env python #coding:utf-8 from bs4 import BeautifulSoup ...

  5. Python爬虫小实践:爬取任意CSDN博客所有文章的文字内容(或可改写为保存其他的元素),间接增加博客访问量...

    Python并不是我的主业,当初学Python主要是为了学爬虫,以为自己觉得能够从网上爬东西是一件非常神奇又是一件非常有用的事情,因为我们可以获取一些方面的数据或者其他的东西,反正各有用处. 这两天闲 ...

  6. 一个可编辑与新增博客园文章的 Python 脚本

    我的个人独立博客是基于 Hexo 搭建的,因为小站,Google 搜索引擎收录文章比较慢,还搜不到 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻 ...

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

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

  8. python密码破解工具_一个最简单的博客园文章密码暴力破解器-python3实现

    一个最简单的博客园文章密码暴力破解器-python3实现 我之前想写路由器的密码暴力破解器,我手上只有极路由,发现极路由有安全限制,只能允许连续10密码错误,所以我改拿博客园练手. 博客园的博客有个功 ...

  9. live writer 51cto博客设置

    打开客户端:使用Windows Live Writer时会出现向导界面,快速引导我们配置博客空间: 选择"其他日志服务" 设置博客帐户: 1.在您的日志网址中输入:您的博客地址/x ...

最新文章

  1. vs2012下编码引起的一个神坑
  2. jittor和pytorch生成网络对比之unit
  3. HTML怎么把文字分栏_JS将HTML生成PDF并下载
  4. sessionbean entitybean 区别
  5. TypeScript 2.7 版本发布
  6. java struts 文件下载_Struts2文件下载实例
  7. 助人快乐:笔记本连网
  8. 成功加入微软GDI计划
  9. 华为透露中国首个开源基金会将于近期正式运营!
  10. 【Android架构GPS篇】之GPS定位应用层流程
  11. 用手画了11张图终于搞明白了Git工作流,我怀疑你用的是假 Git
  12. WSL2 网络异常排查 [ping 不通、网络地址异常、缺少默认路由、被宿主机防火墙拦截]
  13. 探索肠道细菌的营养偏好
  14. centos 防火墙关闭 不能访问3306端口
  15. Luat实现uart串口通信
  16. 强烈推荐33个 GitHub 前端学习资源
  17. 二叉树的遍历 中序线索二叉树
  18. 分布式任务调度系统设计:详解Go实现任务编排与工作流
  19. Win10下搭建burpsuite pro,最详细的安装步骤(附Burpsuite pro安装包)
  20. 《UnityAPI.Rigidbody刚体》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Rigidbody+isKinematic+AddForce+立钻哥哥++OK+)

热门文章

  1. “数据中台”是什么?
  2. 【转】时间序列分析——基于R,王燕
  3. Python爬虫(五)
  4. fedora 使用 vnc 远程 fedora 28 主机
  5. hibernate学习五 Hibernate补充
  6. STM32的备份寄存器测试
  7. 灵活运用 SQL Server 数据库的 FOR XML PATH
  8. python打包工具 --- pyinstaller
  9. 算法---FaceNet+mtcnn的使用记录
  10. 833系列——二叉排序树