Python使用scrapy抓取网站sitemap信息的方法


Posted in Python onApril 08, 2015

本文实例讲述了Python使用scrapy抓取网站sitemap信息的方法。分享给大家供大家参考。具体如下:

import re
from scrapy.spider import BaseSpider
from scrapy import log
from scrapy.utils.response import body_or_str
from scrapy.http import Request
from scrapy.selector import HtmlXPathSelector
class SitemapSpider(BaseSpider):
 name = "SitemapSpider"
 start_urls = ["http://www.domain.com/sitemap.xml"]
 def parse(self, response):
  nodename = 'loc'
  text = body_or_str(response)
  r = re.compile(r"(<%s[\s>])(.*?)(</%s>)"%(nodename,nodename),re.DOTALL)
  for match in r.finditer(text):
   url = match.group(2)
   yield Request(url, callback=self.parse_page)
 def parse_page(self, response):
    hxs = HtmlXPathSelector(response)
    #Mock Item
  blah = Item()
  #Do all your page parsing and selecting the elemtents you want
    blash.divText = hxs.select('//div/text()').extract()[0]
  yield blah

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Windows系统配置python脚本开机启动的3种方法分享
Mar 10 Python
Python的Flask框架的简介和安装方法
Nov 13 Python
Python编写一个闹钟功能
Jul 11 Python
一些Centos Python 生产环境的部署命令(推荐)
May 07 Python
解决Python安装后pip不能用的问题
Jun 12 Python
python爬虫selenium和phantomJs使用方法解析
Aug 08 Python
浅析Python语言自带的数据结构有哪些
Aug 27 Python
Tensorflow的梯度异步更新示例
Jan 23 Python
关于Django Models CharField 参数说明
Mar 31 Python
python开发入门——set的使用
Sep 03 Python
python 机器学习的标准化、归一化、正则化、离散化和白化
Apr 16 Python
Django + Taro 前后端分离项目实现企业微信登录功能
Apr 07 Python
Python中用format函数格式化字符串的用法
Apr 08 #Python
简单介绍Python中的JSON模块
Apr 08 #Python
Python实现把xml或xsl转换为html格式
Apr 08 #Python
Python正则表达式匹配HTML页面编码
Apr 08 #Python
在Python中关于中文编码问题的处理建议
Apr 08 #Python
Python脚本实现格式化css文件
Apr 08 #Python
Python实现获取操作系统版本信息方法
Apr 08 #Python
You might like
解析PHP中的file_get_contents获取远程页面乱码的问题
2013/06/25 PHP
windows7下安装php的php-ssh2扩展教程
2014/07/04 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
2014/07/05 PHP
使用PHP如何实现高效安全的ftp服务器(一)
2015/12/20 PHP
thinkphp3.x中cookie方法的用法分析
2016/05/19 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
PHP isset()与empty()的使用区别详解
2017/02/10 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
$.get获取一个文件的内容示例代码
2013/09/11 Javascript
JQuery中Bind()事件用法分析
2015/05/05 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
AngularJS constant和value区别详解
2017/02/28 Javascript
轻松理解JavaScript闭包
2017/03/14 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
基于js中this和event 的区别(详解)
2017/10/24 Javascript
JavaScript闭包原理与用法实例分析
2018/08/10 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
vue获取验证码倒计时组件
2019/08/26 Javascript
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
JS前端广告拦截实现原理解析
2020/02/17 Javascript
从零学Python之入门(三)序列
2014/05/25 Python
Python 序列的方法总结
2016/10/18 Python
对matplotlib改变colorbar位置和方向的方法详解
2018/12/13 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
python如何绘制疫情图
2020/09/16 Python
Vans澳大利亚官网:购买鞋子、服装及配件
2019/09/05 全球购物
PatPat德国:妈妈的每日优惠
2019/10/02 全球购物
英国领先的在线高尔夫设备零售商:Golfgeardirect
2020/12/11 全球购物
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
会计实习期自我鉴定
2013/10/06 职场文书
预备党员入党思想汇报
2014/01/04 职场文书
数学教育专业求职信
2014/07/22 职场文书