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

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. CKEditor & CKFinder集成

    CKEditor集成 CKEditor(原名FckEditor): 著名的HTML编辑器(可在线编辑HTML) 配置: ①将CKEditor中的(adapters images lang plugin ...

  2. javascript重置(base层)(。。。。不完整)

    1.nextSibling浏览器兼容问题 <ul> <li id="item1"></li> <li id="item2&quo ...

  3. imx6q Xorg下Qt应用开机自启动及添加桌面快捷启动图标的方法

    启动scene3d例子: root@imx6qsabresd:/etc/X11/Xsession.d# ls -altotal 36drwxr-xr-x 2 root root 4096 Mar 12 ...

  4. UVA11383 Golden Tiger Claw

    题目 UVA11383 Golden Tiger Claw 做法 \(KM\)好题啊,满足所有边\(l(x)+l(y)≥w(x,y)\)(个人理解,如不对请及时留言),这样能满足\(\sum\limi ...

  5. 大话设计模式之PHP篇 - 简单工厂模式

    假设有一道编程题:输入两个数字和运算符,然后得到运算结果.非常简单的一道题目,通常的实现代码如下: <?php Function Operation($val1, $val2, $operate ...

  6. java web数据库连接封装-simple

    package cn.cslg.bm.web.util; import java.sql.Connection; import java.sql.DriverManager; import org.a ...

  7. docker calico安装

      第一步,安装etcd: 请参考以前的文章:  http://www.cnblogs.com/vincenshen/articles/8637949.html 第二步,下载calico: sudo ...

  8. 【转载】有向图强连通分量的Tarjan算法

    转载地址:https://www.byvoid.com/blog/scc-tarjan [有向图强连通分量] 在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly conn ...

  9. poj 2828 Buy Tickets 【买票插队找位置 输出最后的位置序列+线段树】

    题目地址:http://poj.org/problem?id=2828 Sample Input 4 0 77 1 51 1 33 2 69 4 0 20523 1 19243 1 3890 0 31 ...

  10. 8.14比赛j题 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87813#overview

    就我个人来说我觉得这道题其实不用写题解,只是因为做的时候错了一次,如果不是队友细心,我根本会错下去,所以我感觉自己必须强大#include<stdio.h> #include<str ...