年前有点忙,没来的及更博,最近看爬虫正则的部分 巩固下

1.爬取的单页面:http://blog.csdn.net/column/details/why-bug.html

2.过程 解析url获得网站源代码

3.找到文章标题列表和文章url(a标签下’href'属性)组成列表

4.for循环取出

#解析用到的还是urlllib urllib2两个模块 并加了个header请求表头

代码及过程如下:

#coding:utf-8
import re
import urllib
import urllib2 rooturl='http://blog.csdn.net/column/details/why-bug.html'
#urllib2.Request()方法 请求
req=urllib2.Request(rooturl)
req.add_header('User-Agent','Chrome')
req=urllib2.urlopen(req)
#req变量的read()方法获得源代码
html=req.read()
#分析文章标题和href属性
#标题和文章url都在a标签内 url格式为'http://blog.csdn.net/pleasecallmewhy/article/details/(****)',标题在'target="_blank">(****)</a>'
#写正则表达式 利用()小括号将url和标题分组
rs=r'<a href="(http://blog.csdn.net/pleasecallmewhy/article/details/.*?)" target="_blank">(.*?)</a>'
#利用正则findall(正则表达式rs,查找的范围) 现在及findall(rs,html)找到所有符合条件的元素并返回一个列表titlelist
titlelist=re.findall(rs,html)
#因为正则表达式是有2个分组 一个是文章url('href='以后括号的内容),一个是文章标题 这两个内容在titlelist里面是以元组形式构成的
#列表的长度就是页面有多少篇博客文章
print '爬取完毕,一共%s篇文章' % len(titlelist)
#因为想实现打印出第几篇文章 文章标题 文章链接的效果 需要对titlelist进行遍历 用到的是列表list类的enumerate()方法 打印出列表索引和值
#第一个索引值为0 值为一个元组(文章url,文章标题) 这个元组又可以切片 因此取这个元组的第一个元素和第二个元素及实现效果
for i,j in enumerate(titlelist):
#i为titlelist列表的索引 j为titlelist列表的值
#取j的第一个元素j[0]即文章url 赋值给变量titurl 标题同样
titleurl=j[0]
titlename=j[1]
#打印效果 用%格式化输出 titlelist索引值从0开始因此对i+1 代表第一篇文章
print '第%s篇文章为:【%s】,链接:%s' %(i+1,titlename,titleurl)

    

 

Python 2.7_爬取CSDN单页面利用正则提取博客文章及url_20170114的更多相关文章

  1. Python 2.7_爬取CSDN单页面博客文章及url(二)_xpath提取_20170118

    上次用的是正则匹配文章title 和文章url,因为最近在看Scrapy框架爬虫 需要了解xpath语法 学习了下拿这个例子练手 1.爬取的单页面还是这个rooturl:http://blog.csd ...

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

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

  3. python爬虫实例——爬取歌单

    学习自<<从零开始学python网络爬虫>> 爬取酷狗歌单,保存入csv文件 直接上源代码:(含注释) import requests #用于请求网页获取网页数据 from b ...

  4. Python 2.7_爬取妹子图网站单页测试图片_20170114

    1.url= http://www.mzitu.com/74100/x,2为1到23的值 2.用到模块 os 创建文件目录; re模块正则匹配目录名 图片下载地址; time模块 限制下载时间;req ...

  5. python使用bs4爬取boss静态页面

    思路: 1.将需要查询城市列表,通过城市接口转换成相应的code码 2.遍历城市.职位生成url 3.通过url获取列表页面信息,遍历列表页面信息 4.再根据列表页面信息的job_link获取详情页面 ...

  6. 看我怎么扒掉CSDN首页的底裤(python selenium+phantomjs爬取CSDN首页内容)

    这里只是学习一下动态加载页面内容的抓取,并不适用于所有的页面. 使用到的工具就是python selenium和phantomjs,另外调试的时候还用了firefox的geckodriver.exe. ...

  7. Python爬取CSDN博客文章

    0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.win ...

  8. 开发记录_自学Python写爬虫程序爬取csdn个人博客信息

    每天刷开csdn的博客,看到一整个页面,其实对我而言,我只想看看访问量有没有上涨而已... 于是萌生了一个想法: 想写一个爬虫程序把csdn博客上边的访问量和评论数都爬下来. 打算通过网络各种搜集资料 ...

  9. 大神:python怎么爬取js的页面

    大神:python怎么爬取js的页面 可以试试抓包看看它请求了哪些东西, 很多时候可以绕过网页直接请求后面的API 实在不行就上 selenium (selenium大法好) selenium和pha ...

随机推荐

  1. yii常用操作函数

    <?php defined('YII_DEBUG') or define('YII_DEBUG', true); //当在调试模式下,应用会保留更多日志信息,如果抛出异常,会显示详细的错误调用堆 ...

  2. mongodb简介和特性

    1.mongodb是基于文档的(BSON,类似json的键值对来存储),不是基于表格,易于水平扩展,将内部相关的数据放在一起能提高数据库的操作性能.如果你想新建一个新的文档类型,不用事先告诉数据库关于 ...

  3. WebSocket 初体验

    其实老早就觊觎 Socket 这碗美食了,在 WebSocket 发出后更是心潮澎湃... 奈何这需要后端同志的帮助,使得至今才得以品尝.(当然本文也只涉及前端部分) 以前想监听其他设备变化,大屏幕交 ...

  4. samba Doc

    Samba-HOWTO-Collection中文翻译版(2.20) 2013年08月23日 ⁄ 综合 ⁄ 共 19460字 ⁄ 字号 小 中 大 ⁄ 评论关闭 Samba计划文档 (初稿) Samba ...

  5. Kubernetes lxcfs

    容器实现的基础是NameSpace和Cgroups. NameSpace实现了对容器(进程)的隔离,NameSpace技术实际上修改了应用进程看待整个计算机“视图”,也就是作用域,即它的“视线”被操作 ...

  6. MongoDB快速入门(七)- Save() 方法

    MongoDB Save() 方法 save() 方法取代,通过新文档到 save()方法 语法 mongodb 的 save()方法如下所示的基本语法: >db.COLLECTION_NAME ...

  7. HttpClient技术

    1.什么是HttpClient? 2.HttpClient特点? 特点: 2.1. 基于标准.纯净的Java语言.实现了Http1.0和Http1.1 2.2. 以可扩展的面向对象的结构实现了Http ...

  8. 【arc101】比赛记录

    这场还好切出了D,rt应该能涨,然而这场的题有点毒瘤,700分的D没多少人切,更别说EF了.(暴打出题人)既然这样,干脆就水一篇博客,做个简单的比赛记录. C - Candles 这题是一道一眼题,花 ...

  9. springcloud-声明式调用服务Feign

    springcloud项目例子:链接:https://pan.baidu.com/s/1O1PKrdvrq5c8sQUb7dQ5Pg 密码:ynir 作用: 基于Netflix Feign整合了Rib ...

  10. java深入探究15-SpringMVC

    测试代码:链接:http://pan.baidu.com/s/1c1QGYIk 密码:q924 回顾spring+struts web.xml配置;struts核心过滤器;spring监听器-> ...