Python 2.7_爬取CSDN单页面博客文章及url(二)_xpath提取_20170118
2017-01-18 21:15
756 查看
上次用的是正则匹配文章title 和文章url,因为最近在看Scrapy框架爬虫 需要了解xpath语法 学习了下拿这个例子练手
1、爬取的单页面还是这个rooturl:http://blog.csdn.net/column/details/why-bug.html
2、用requests的 get方法添加一个header 请求rooturl获得网站源代码 不添加header源代码里面是抓不到内容的
3、用lxml下的etree.HTML()方法 将requests请求的html源码(html变量)返回给seletor这个对象
4、分析网页结构 找到能够包含文章url和标题内容的区域 调用返回的selector.xpath()方法 返回一个Element类型对象的列表infos
5、定义一个空列表titlelists,这个大列表用来保存 第6步取出的 titleurls列表和文章titlenames列表 用zip函数整理成titlelist列表 元素为(titleurl,titlename)元组的一个列表 进而添加进大列表titlelists
6、大列表titlelists 此时的数据类型是列表 每一个元素为一个小列表 小列表元素为元组 进行遍历切片 之前用的是enumerate 方法取索引和内容 现在用titlelists.index(i)方法取索引
代码如下:
1、爬取的单页面还是这个rooturl:http://blog.csdn.net/column/details/why-bug.html
2、用requests的 get方法添加一个header 请求rooturl获得网站源代码 不添加header源代码里面是抓不到内容的
3、用lxml下的etree.HTML()方法 将requests请求的html源码(html变量)返回给seletor这个对象
4、分析网页结构 找到能够包含文章url和标题内容的区域 调用返回的selector.xpath()方法 返回一个Element类型对象的列表infos
5、定义一个空列表titlelists,这个大列表用来保存 第6步取出的 titleurls列表和文章titlenames列表 用zip函数整理成titlelist列表 元素为(titleurl,titlename)元组的一个列表 进而添加进大列表titlelists
6、大列表titlelists 此时的数据类型是列表 每一个元素为一个小列表 小列表元素为元组 进行遍历切片 之前用的是enumerate 方法取索引和内容 现在用titlelists.index(i)方法取索引
代码如下:
#coding:utf-8 from lxml import etree import requests import sys reload(sys) sys.setdefaultencoding('utf8') rooturl='http://blog.csdn.net/column/details/why-bug.html' headers={'User-Agent':'Chrome'} req=requests.get(rooturl,headers=headers) req.encoding='utf-8' html=req.text selector=etree.HTML(html) infos=selector.xpath('//ul[@class="detail_list"]/li') titlelists=[] for info in infos: titleurls=info.xpath('h4/a/@href') titlenames=info.xpath('h4/a/text()') titlelist=zip(titleurls,titlenames) titlelists.append(titlelist) print '爬取完毕,一共爬取了%s篇文章' % len(titlelists) for i in titlelists: print '第%s篇文章为:【%s】,链接:%s' % (titlelists.index(i)+1,i[0][1],i[0][0])
相关文章推荐
- Python 2.7_爬取CSDN单页面利用正则提取博客文章及url_20170114
- python提取页面内url列表的方法
- Python自动化脚本【1】url提取及自动打开页面
- Python-爬取自己博客文章的URL
- python提取页面内url列表的方法
- python 提取url中域名
- 【google chrome 一键打开 谷歌跳转的页面+JS Replace】谷歌无法打开网页的时候,提取网页中url的部分
- 正则表达式应用--提取CSDN所有下载资源页面URl的思路与代码实现
- 百度收录袋鼠博客文章页面失常,找到症结所在
- Python网页抓取:获取页面中某段内容的xpath
- Python抓取页面中超链接(URL)的三中方法比较(HTMLParser、pyquery、正则表达式) <转>
- 根据URL提取页面的Title,根据网页的charset自动判断Encoding
- asp.net 提取URL页面内容
- python提取url
- python实现博客文章爬虫示例
- 用python正则表达式提取网页的url
- 黄聪:用python知道URL地址提取链接中的域名与端口
- dedecms文章页面URL路径优化
- CSDN博客专栏文章批量下载脚本[python实现]
- Python实践:提取文章摘要