使用python的pyquery模块解析csdn个人博客的标题和描述
2016-03-10 11:47
676 查看
最近新学习了一个模块pyquery,用来解析html效果那是挺好的,可惜的是也有缺点,不能解析正文嵌套的其他格式,但是一般的获取信息那是不在话下的。
下面直接上脚本,挺简单的一个脚本
备注:因为直接用PyQuery的构造函数传入url csdn就不认识我了,所以直接伪造一个user-agent了,然后用了重载的传入string的方式,大部分网站还是支持直接传入url的。
好了,要解析的网址是:http://blog.csdn.net/cloud_huan
然后浏览器右键查看源码,查找到标题的关键字段为:
然后是描述的关键字段:
所以分析之后,生成一个PyQuery对象,然后用类的选择条件筛选文本快内容,最后因为有很多个标题,所以循环读取赛选结果,取得每一篇文章的标题和描述。
最后的完整文件如下:
下面直接上脚本,挺简单的一个脚本
备注:因为直接用PyQuery的构造函数传入url csdn就不认识我了,所以直接伪造一个user-agent了,然后用了重载的传入string的方式,大部分网站还是支持直接传入url的。
好了,要解析的网址是:http://blog.csdn.net/cloud_huan
然后浏览器右键查看源码,查找到标题的关键字段为:
<div class="list_item article_item"> <div class="article_title"> <span class="ico ico_type_Original"></span> <h1> <span class="link_title"><a href="/cloud_huan/article/details/47777129"> <font color="red">[置顶]</font> 一个测试的Android学习笔记 12.23 </a></span> </h1> </div>
然后是描述的关键字段:
<div class="article_description"> 咳咳,手机测试已经有一年了,本人的意愿也是希望能在手机软件测试一直走下去。回想上一年在腾讯外包的日子,甜酸苦辣都有,但更多的是收货了... 本片不是总结啦,只是一个展望,毕竟,没有方向,没有目标是成不了大事的,或者,总要追求点什么...技术的路,最重要的是分享和总结,于是工作第二年,下定决定要写点什么,鉴于本人的技术低下,懒惰,完全是没有欲望写博文的...直到看到老罗的Android之旅,心中突... </div>
所以分析之后,生成一个PyQuery对象,然后用类的选择条件筛选文本快内容,最后因为有很多个标题,所以循环读取赛选结果,取得每一篇文章的标题和描述。
最后的完整文件如下:
# _*_ coding:utf-8 _*_ from pyquery import PyQuery as pq import urllib2 t = [] d = [] #csdn不让直接解析,会403,所以伪造了http请求头 head_req = {'User-Agent':'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)'} req = urllib2.Request("http://blog.csdn.net/cloud_huan",headers=head_req) result = urllib2.urlopen(req).read() doc = pq(result) #查找类名为article_title,返回一个PyQuery对象 doc_title = doc('.article_title') #这里迭代PyQuery出来的是<class 'lxml.html.HtmlElement'>就是html元素了 for i in doc_title: title = pq(i).text() t.append(title) doc_des = doc('.article_description') for i in doc_des: des = pq(i).text() d.append(des) for i in range(0,len(t)): print t[i],'---',d[i] print '*********************'
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法