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 相关文章推荐
python练习程序批量修改文件名
Jan 16 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
Sep 19 Python
Python处理PDF及生成多层PDF实例代码
Apr 24 Python
解决Python plt.savefig 保存图片时一片空白的问题
Jan 10 Python
python导入坐标点的具体操作
May 10 Python
python连接打印机实现打印文档、图片、pdf文件等功能
Feb 07 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
Jun 01 Python
python程序需要编译吗
Jun 19 Python
Python matplotlib模块及柱状图用法解析
Aug 10 Python
python 如何快速复制序列
Sep 07 Python
深入理解Python变量的数据类型和存储
Feb 01 Python
如何解决.cuda()加载用时很长的问题
May 24 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
PHPShop存在多个安全漏洞
2006/10/09 PHP
Centos6.5和Centos7 php环境搭建方法
2016/05/27 PHP
微信利用PHP创建自定义菜单的方法
2016/08/01 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
2018/03/15 PHP
js刷新框架子页面的七种方法代码
2008/11/20 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
用JS实现图片轮播效果代码(一)
2016/06/26 Javascript
AngularJS  ng-table插件设置排序
2016/09/21 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
JSP防止网页刷新重复提交数据的几种方法
2016/11/19 Javascript
浅析如何利用angular结合translate为项目实现国际化
2016/12/08 Javascript
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
解决vue项目打包后提示图片文件路径错误的问题
2018/07/04 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
2018/09/05 Javascript
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
刷新页面后让控制台的js代码继续执行
2019/09/20 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
python实现文件分组复制到不同目录的例子
2014/06/04 Python
python实现根据图标提取分类应用程序实例
2014/09/28 Python
Python编写电话薄实现增删改查功能
2016/05/07 Python
python并发编程多进程 模拟抢票实现过程
2019/08/20 Python
python使用协程实现并发操作的方法详解
2019/12/27 Python
解决python执行较大excel文件openpyxl慢问题
2020/05/15 Python
Python批量处理csv并保存过程解析
2020/05/16 Python
python实现测试工具(二)——简单的ui测试工具
2020/10/19 Python
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
贷款委托书
2014/08/01 职场文书
2014年国庆节活动总结
2014/08/26 职场文书
仓库管理员岗位职责
2015/02/03 职场文书
2016年清明节网上祭英烈活动总结
2016/04/01 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
2019年员工旷工保证书!
2019/06/28 职场文书
redis通过6379端口无法连接服务器(redis-server.exe闪退)
2021/05/08 Redis