scrapy 学习笔记1 爬取 www.dmoz.org 网站信息

news/2024/5/12 6:55:33/文章来源:https://blog.csdn.net/zhyh1435589631/article/details/51516241

1. 安装配置

  1. 具体的安装过程, 官网已经写的很清楚了http://doc.scrapy.org/en/latest/intro/install.html#windows
  2. 不过在实际安装过程中还是遇到了一个小问题:
    这里写图片描述
    ie, 缺少microsoft visual c++ 9.0 运行库,
    上图中已经告诉我们了解决方法: 去到 http://aka.ms/vcpython27 下载相应文件即可。
    这里直接给出下载链接
    https://www.microsoft.com/en-us/download/confirmation.aspx?id=44266

  3. Scrapy运行项目时出错:Scrapy 1.0.1 – no active project,Unknown command: crawl,Use “scrapy” to see available commands
    这里写图片描述
    这个问题, 我们研究了很久, 终于发现, 是我们的这里的 working directory 配置有问题。 应该将这个工作路径配置到工程的最顶级路径, ie:
    这里写图片描述
    至此, scrapy 在pycharm中配置完成

可以参考: http://www.07net01.com/2015/08/904875.html

2. 爬取需要的信息

  1. 接下来的操作都是参考 http://doc.scrapy.org/en/latest/intro/tutorial.html 官网的引导完成的, 英文好的可以直接查看原文, 便于理解
  2. 新建项目

    scrapy startproject tutorial

    并将项目文件夹用pycharm 打开

  3. 确定我们的item 结构
    个人理解, 这个结构有点数据结构的意思在里面, 主要用来保存提取的信息

    import scrapy
    
    class DmozItem(scrapy.Item):title = scrapy.Field()link = scrapy.Field()desc = scrapy.Field()
  4. 简单爬虫
    这里有几个要素:

    • name, 标记爬虫
    • start_urls 标记起始url
    • parse,默认的回调函数
    import scrapyclass DmozSpider(scrapy.Spider):name = "dmoz"allowed_domains = ["dmoz.org"]start_urls = ["http://www.dmoz.org/Computers/Programming/Languages/Python/Books/","http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"]def parse(self, response):filename = response.url.split("/")[-2] + '.html'with open(filename, 'wb') as f:f.write(response.body)
  5. 爬虫运行

    scrapy crawl dmoz

    scrapy 自动为每个 start_urls 中的url 发起request 请求, 对得到的response 调用parse 进行处理

  6. 提取信息
    这里面主要用到各种选择器: xpath, css, re, extract

  7. 完成版本
    从主页中提取感兴趣的url后, 再对相应的url 页面提取信息

    import scrapyfrom tutorial.items import DmozItemclass DmozSpider(scrapy.Spider):name = "dmoz"allowed_domains = ["dmoz.org"]start_urls = ["http://www.dmoz.org/Computers/Programming/Languages/Python/",]def parse(self, response):for href in response.css("ul.directory.dir-col > li > a::attr('href')"):url = response.urljoin(href.extract())yield scrapy.Request(url, callback=self.parse_dir_contents)def parse_dir_contents(self, response):for sel in response.xpath('//ul/li'):item = DmozItem()item['title'] = sel.xpath('a/text()').extract()item['link'] = sel.xpath('a/@href').extract()item['desc'] = sel.xpath('text()').extract()yield item
  8. 存储信息

scrapy crawl dmoz -o items.json

存储效果:
这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_856907.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于 flask 框架的模拟instagram 图片分享网站的开发

1. 前言 我们的目标是模拟instagram 制作一个图片分享的网站, 我们这里选用的是 flask 框架, 这个框架小巧, 易于扩展, 简单易用 2. 基本思路 利用sqlalchemy 构建 数据库 orm, 建立 user, image&#x…

基于 flask 框架的模拟instagram 图片分享网站的开发 2

1. 前言 我们之前写过一篇博文http://blog.csdn.net/zhyh1435589631/article/details/51787577, 在那篇博文里面, 我们完成了instagram 网站开发的几个基本功能, 包括首页展示, 个人信息页面显示, 图片详情页面展示等…

基于 flask 框架的模拟instagram 图片分享网站的开发 3

1. 摘要 这次添加的功能是 实现首页和 个人信息页面的异步加载功能 传送门: 基于 flask 框架的模拟instagram 图片分享网站的开发 2 基于 flask 框架的模拟instagram 图片分享网站的开发 1 2. 流程 2.1 profile.js 分析 这里需要编写相应的js 代码&#xff0…

基于 flask 框架的模拟instagram 图片分享网站的开发 4

1. 摘要 这次添加的功能是 个人页图片上传功能和图片详情页评论异步加载功能 传送门: 基于 flask 框架的模拟instagram 图片分享网站的开发 3 基于 flask 框架的模拟instagram 图片分享网站的开发 2 基于 flask 框架的模拟instagram 图片分享网站的开发 1 2. …

基于 flask 框架的模拟instagram 图片分享网站的开发 7 (爬虫机器人)

1. 前言 我们之前使用flask实现了一个模拟instagram的图片分享网站的开发, 但是图片的更新需要用户上传, 但是由于用户比较少, 鉴于这个问题, 我们就考虑引入一个爬虫机器人, 自动的向web程序相关的数据库表项中写入数…

url带斜杠和不带斜杠对seo优化的影响

点我进入原文 ps: seo 是指搜索引擎优化 url带斜杠和不带斜杠对seo优化的影响 作为seo的专员对于这个问题,我觉得很多细心的人都能发现,这二者的区别,但是不知道其中奥妙。今天博主给大家说说关于搜索引擎网址中带/与不带/对于seo的影响。 在…

高并发高流量网站架构

http://blog.csdn.net/SmartTony/archive/2010/09/09/5874485.aspx Web2.0的兴起,掀起了互联网新一轮的网络创业大潮。以用户为导向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网站,也极大的方便了上网…

从“奥运门票网站800万访问量”想到的成本、质量、进度、风险等关系

看到这个新闻后颇有一番滋味,更体验到我一直关注的软件性能着实无处不在,这个案例也确实值得我们好好反思一下。 不知道网友们有没有报名参加国际日语考试的——这个网站每年05年前都有人不能报名,因为报名人数太多,所以报名当日大…

h5跳微信小程序流程实现——使用云函数,不开通静态网站

官方开源库: GitHub TCloudBase/WXSEVER-SMS 参考教程: https://developers.weixin.qq.com/community/develop/doc/000ae2a7a7c9402a4d8bca2875b409 此教程为官方提供,包含视频文档 步骤: 1. 开通云开发 2. 新建云函数 ope…

搜索引擎SEO外挂:一边搜索,一边看PageRank

搜索引擎SEO外挂:一边搜索,一边看PageRank 下载地址:多么乐站长工具 我原来曾写过一篇统计分析搜索引擎排名和Page Rank 关联分析 的文章。很多人引用,回复和我讨论了我的结论。有赞成的,有反对的,有鼓励的…

seo优化:把百度放进数据库

seo优化:把百度放进数据库 有时候我想,能把百度的数据放进数据库,用广大程序员熟悉的sql语句查询百度的搜索结果应该是一个不错的主意。在这方面Google早已经跨出了一大步,利用Google Search API 把Google的搜索结果放进数据库是很容易办到得…

商业网站 第八章 注册登陆模板设计

注册——插入记录 服务器行为——添加——插入记录——连接:web_ljdata——插入到表格:T_user——获取值自:form1(注册表单)——表单元素——注册成功后:插入后转到(注册成功表单) 验证登陆信息 数据库面板…

网站推荐机制中的艺术、科学与商务问题

网站推荐机制是电子商务或内容网站的核心功能之一。例如你在一个网站买了一本书后,网站会推荐其他你可能会感兴趣的书。这被认为是亚马逊等电子商务巨头成功的关键。本文对几个出色的推荐系统进行了较透彻的分析。 2006年10月,Netflix搞了一次不寻常的有…

平面设计素材网站-庞姿姿

哈喽,大家好!今天为大家分享的是免费的平面设计素材网站,设计类网站是大家在所难免需要的了吧,下面就是我发现的比较好用的免费的平面设计素材网站,感兴趣的小伙伴看过来,如果你还发现其它好的网站评论一起…

OpenCms创建网站过程图解——献给OpenCms的初学者们

很多人都听说了OpenCms,知道了它的强大,索性的下载安装了,终于见到了久违OpenCms,看到了它简洁的界面,欣喜过后却不免一脸茫然,这个东西怎么用,我怎么用它来建站,从哪开始&#xff0…

视觉素材-免费高清!10个无版权限制的大图特供网站

今天为大家整理目前优秀的提供免费图片素材资源网站,这些网站的图片质量相当高,大部分为高分辨率(高解析),并且,最重要的是,它是免费的,无版权限制!同时具备免费、高清&a…

获取任意网站的图标,标题栏logo,网站logo的方法

不错呦~我想要这个图标怎么办呢? 直接使用网址加上: https://csdn.net/favicon.ico 获取到了 说明:这种方法适用于百分之九十的站点,如果你有想要使用的LOGO或者ico可以使用此方法简单获取。

【引用】iphone开发的好网站

分享iphone开发的好网站,希望大家也能提供一些分享下 收藏 1、http://developer.apple.com/iphone/library 这个是官方的代码实例 2、www.cocoachina.com 这个网站比较适合初期开发者,上面的版主之类的也比较热心,一般的问题都会提供帮助 3…

[.Net Core学习一]网站发布

1.首先点击图片IIS上的模块 判断是否存在 如果没有去官网下载 安装好后 按照formwork版发布即可 结果