Scrapy教程 - (2)寫一個簡單爬蟲

《用Python写网络爬虫第2版》PDF中英文+代码分析 互联网包含了迄今为止最有用的数据集,并且大部分可以免费公开访问。但是,这些数据难以复用。它们被嵌入在网站的结构和样式当中,需要抽取出来才能使用。从网页中抽取数据的过程又称为网络爬虫,随着越来越多的信息被发布到网络上,网络爬虫也变得越 来越有用。 在理想状态下,网络爬虫并不是必需品,每个网站都应该提供API,以结构化的格式共享它们的数据。然而在现实情况中,虽然一... 阅读详情

Scrapy教程 - (2)寫一個簡單爬蟲

目的:爬取此網頁的所有書籍名稱,價格,url,庫存,評價及封面圖片。本文以此網站為例

檢查robotstxt_obey

創建好scrapy project後,先到settings.py找到ROBOTSTXT_OBEY,並把它設成False。
(此舉動意義為不遵守該網站的robots.txt,請在徵得該網同意後再施行。備註:此網站為範例練習網站。)

查看元素位置

回到範例網站,按F12打開開發者工具。
在这里插入图片描述
先以2個小練習來熟悉一下xpath ~
首先,書籍名稱在h3裡的a tag裡面,位置xpath如下:

// parse book titles
response.xpath('//h3/a/@title').extract()

// extract可以解析出所有title的名稱
// 若是使用extract_first()則會解析出第一個title的名稱

接著查看價格所在位置,xpath如下:

// parse book price
response.xpath('//p[@class="price_color"]/text()').extract()

查找url是相當重要的,因為我們必須先找到所有書籍的url,進一步在request所有url,並獲得我們想要取得的資料,其 xpath如下:

response.xpath('//h3/a/@href').extract_first()

// 輸出結果: 'catalogue/a-light-in-the-attic_1000/index.html'

Request第一本書籍

接著觀察url可以發現,剛剛所解析出的是該書籍網址的後綴,也就是說我們必須把前綴加上去,才是一個完整的url。因此到這裡,我們開始寫第一個function。

def parse(self, response):
	// 找所有書籍的url
	books = response.xpath('//h3/a/@href').extract()
    for book in books:
    	// 將網址前綴與後綴結合
    	url = response.urljoin(book)
        yield response.follow(url = url,
                              callback = self.parse_book)

def parse_book(self, response):
	pass

Parse Data

def parse_book(self, response):
	title = response.xpath('//h1/text()').extract_first()
    price = response.xpath('//*[@class="price_color"]/text()').extract_first()

    image_url = response.xpath('//img/@src').extract_first()
    image_url = image_url.replace('../../', 'http://books.toscrape.com/') 

    rating = response.xpath('//*[contains(@class, "star-rating")]/@class').extract_first()
    rating = rating.replace('star-rating', '')

    description = response.xpath('//*[@id="product_description"]/following-sibling::p/text()').extract_first()

查看解析成果

這裡可以用yield來查看解析成果:

// inside parse_book function
yield {'title': title,
       'price': price,
       'image_url': image_url,
       'rating': rating,
       'description': description}

完成一個簡單爬蟲

def parse(self, response):
	// 找所有書籍的url
	books = response.xpath('//h3/a/@href').extract()
    for book in books:
    	// 將網址前綴與後綴結合
    	url = response.urljoin(book)
        yield response.follow(url = url,
                              callback = self.parse_book)
                              
def parse_book(self, response):
	title = response.xpath('//h1/text()').extract_first()
    price = response.xpath('//*[@class="price_color"]/text()').extract_first()

    image_url = response.xpath('//img/@src').extract_first()
    image_url = image_url.replace('../../', 'http://books.toscrape.com/') 

    rating = response.xpath('//*[contains(@class, "star-rating")]/@class').extract_first()
    rating = rating.replace('star-rating', '')

    description = response.xpath('//*[@id="product_description"]/following-sibling::p/text()').extract_first()
	
	yield {'title': title,
       	   'price': price,
           'image_url': image_url,
           'rating': rating,
           'description': description}

執行爬蟲

scrapy crawl <your_spider_name>
基于Scrapy框架的python网络爬虫学习(2) 3.实战学习以爬取智联招聘网站上的北京市IT类招聘信息为目标,开始工作http://www.zhaopin.com/先搜索北京市,然后选择职业中看到有IT/互联网/通信的类别,先选择其中的 软件/互联网开发/系统集成 进行搜索,可以看到以下结果 我们点进去其中的一项可以看到详细的各种信息,这些都是我们想获取的,如何能实现爬取我们所搜索的57039个职位的所有详细信息呢,我们先尝试爬取一个职位的详细 阅读详情

相关推荐

《Python网络爬虫从入门到实践 第2版》第7章 Scrapy框架

第7章 Scrapy框架 前面几章介绍了使用requests加BeatifulSoup工具来获取网页、解析网页、存储数据,上手比较简单,但是每个功能的代码都要自己实现。本章介绍的Scrapy是一个爬虫框架,它将上述的很多功能都封装进框架里。使用较少的代码就能完成爬虫的工作。 本章首先介绍Scrapy和Requests的对比,然后介绍如何安装Scrapy,如何使用Scrapy进行抓取,Scrap...

jxgy01的博客 221

网络爬虫之框架 5-2 Scrapy爬虫基本使用

文章截图均来自中国大学mooc Python网络爬虫与信息提取的教程,以上仅作为我的个人学习笔记。下面是教程链接: https://www.icourse163.org/learn/BIT-1001870001?tid=1450316449#/learn/content?type=detail&id=1214620493&cid=1218397635&replay=true 使用Scrapy库爬取网页https://python123.io/ws/demo.html 1、建立一

yky__xukai的博客 372

网络爬虫与数据抓取:从理论到实践

本文深入探讨了网络爬虫和数据抓取的技术细节,包括web2py框架中的错误处理、项目笔记管理、以及如何使用Scrapy等工具进行网络数据的自动化抓取。文章强调了遵守道德和合法的爬取原则,同时介绍了如何处理和解析HTML数据,以及如何避免对服务器造成不必要的负担。

weixin_42452924的博客 971

python scrapy框架爬虫_python网络爬虫(2)——scrapy框架的基础使用

这里写一下爬虫大概的步骤,主要是自己巩固一下知识,顺便复习一下。一,网络爬虫的步骤1,创建一个工程scrapy startproject 工程名称创建好工程后,目录结构大概如下:其中:scrapy.cfg:项目的主配置信息(真正爬虫相关的配置信息在settings.py文件中)items.py:设置数据存储模板,用于结构化数据,如:Django的Modelpipelines:数据持久化处理s...

weixin_39941620的博客 173

MAX30102心率血氧传感器

估算AC、DC值的方法如下:找两个波谷点,两个波谷点之间有一个波峰点,两个波谷点相连成一条直线,与Y轴平行的线穿过波峰点会与两个波谷点连接成的直线相交于一点,这个点就是DC点,DC点的Y轴对应值就是直流分量,AC分量的值为波峰点到DC点之间的差值。在医院测量中常用的一种血氧采集方式,如下图所示,光电传感器和光源分别置于手指的两侧,光源穿过手指被另一侧的光电二极管接收,根据光衰减量计算血氧浓度。那么,根据上面的Beer-Lambert 定理,针对测量的具体场景,测量过程的衰减为三层穿透物质衰减量的叠加。

qq_41861711的博客 1万+

从零到一:Admin.NET中Swagger与Knife4jUI的深度集成实践

本文详细介绍了在Admin.NET框架中深度集成Swagger与Knife4jUI的实践方法,从基础配置到高级定制,包括认证配置、安全增强、界面主题定制等。通过Furion框架简化配置,开发者可以快速构建专业且友好的API文档界面,提升团队协作效率。

defi6farmer的博客 408

安装scrapy_NO.2 Scrapy简介及安装【Scrapy网络爬虫系列教程】

点击上方蓝字,获得更多精彩内容Scrapy简介 Scrapy 是一套基于基于Twisted的异步处理框架,纯python实现的爬虫框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便~Scrapy的安装 Scrapy框架在Linux、Mac OS、Windows平台都可以使用。Scrapy应用程序也使用Python进行开发...

weixin_39777488的博客 101

LTspice introduction - 2 LTspice的界面

LTspice的界面主要有两个:Schematic Capture和Waveform Viewer Schematic Capture 它主要是用来画电路图的,画完电路图之后,添加一些dot 命令同时选择一些仿真的参数,点击执行(Run)Waveform Viewer 如果你的仿真不是op point的话,一个都会打开它,在它里面你可以画图相应的图形。 有两种方式可以在Viewer

贾亮的专栏 3223

网络爬虫Scrapy框架学习2

提取数据 学习如何使用Scrapy提取数据的最佳方法是使用shell Scrapy shell尝试选择器。 scrapy shell "http://quotes.toscrape.com/page/1/" 使用shell,您可以尝试使用CSS和响应对象选择元素: &gt;&gt;&gt; response.css('title') [&lt;Selector xpath='des...

go含羞草 473

目前最新NIST随机数测试软件下载、安装、及使用教程

最近由于科研需要,在搞一些随机数的测试的事情,众所周知 随机数测试我们可以使用NIST的软件进行多大15项的随机测试,我也在网上查找了很多大牛的博客,但是都是年代久远,很多的链接现在都是物是人非,都是不能直接使用了,今天顺便抽点时间更新一下这个NIST软件的下载及使用。我们首先讲一下该软件的下载:1.我们直接取NIST的官网(https://csrc.nist.gov/)下载即可 ;链接如下:下载...

Miracle.Zhao的博客 3万+

SAP S/4HANA BP主数据-CVI模型

SAP BP主数据介绍 ECC系统中的客户、供应商主数据的限制: •一个客户或供应商仅能有一个地址 •客户和供应商没有关联关系(同一个实体公司) •如果一家公司既是供应商也是客户需建立两个主数据(数据冗余) •属性无时间相关性 S4系统中BP优点: •一个BP可以扮演多个角色(个人,客户,供应商)且角色之间数据共享 •时间相关的属性 •统一的数据架构,无数据冗余 •CVI模型可以确保BP和客户/供应商数据同步 SAP BP主数据配置 •配置BP角色/角色类别 •配置BP角.

qq_37785505的博客 1551

安装scrapy_NO.2 Scrapy简介及安装「Scrapy网络爬虫教程」

Scrapy简介 Scrapy 是一套基于基于Twisted的异步处理框架,纯python实现的爬虫框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便~Scrapy的安装 Scrapy框架在Linux、Mac OS、Windows平台都可以使用。Scrapy应用程序也使用Python进行开发,目前可以支持Python 2.7以及Python 3.4+...

weixin_39605345的博客 82

Python 映射函数map()详解

Python 映射函数map()详解

分享我的点点滴滴,在成长路上与你同行! 2141

网络爬虫-Scrapy框架--python笔记2

一、 Scrapy命令: (一)全局命令: 格式:Scrapy 命令名 –参数 Scrapy -h 查看命令 1、fetch 命令的作用是查看爬去的过程 –nolog 命令 去除爬去日志信息 格式:Scrapy fetch 网址 --nolog 2、runspider 命令用来运行单独的爬虫文件 格式:进入爬虫文件所在目录 scrapy runsipder 爬虫文件名 3、 shell 命令用来启...

今天菜里有肉 222

【unity游戏开发之InputSystem——01】通过写代码监听InputSystem输入(基于unity6开发介绍)

通过写代码监听InputSystem输入(基于unity6开发介绍)

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4892

SAP S/4HANA 数据 API 化与 MCP 集成全流程实战指南

通过 RAP 发布 OData、利用 Communication Arrangement 打通外网、再在 MCP-server 里封装函数签名,你就能把 S/4HANA 的核心数据安全、标准化地暴露给任意支持 MCP 的大模型。这条链路的每一个环节都由 SAP 与 MCP 社区提供了现成框架,既兼顾了企业合规,也让 LLM 落地更为轻量。期待你在项目里把这些拼图真正串联起来,让业务数据与生成式 AI 碰撞出高价值的火花。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 978

Windows下安装Scrapy方法及常见安装问题总结——Scrapy安装教程

这几天,很多朋友在群里问Scrapy安装的问题,其实问题方面都差不多,今天小编给大家整理一下Scrapy的安装教程,希望日后其他的小伙伴在安装的时候不再六神无主,具体的教程如下。Scrapy是Python网络爬虫的一个框架,十分好用,深得大家的青睐,其工作原理,在在此就不赘述了。1、正常我们在Python库的时候,只需要利用cmd命令打开命令行窗口,然后输入pip install 库,就可以正常安...

weixin_33709219的博客 574

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

python网络爬虫(2)——scrapy框架的基础使用

这里写一下爬虫大概的步骤,主要是自己巩固一下知识,顺便复习一下。 一,网络爬虫的步骤 1,创建一个工程 scrapy startproject 工程名称   创建好工程后,目录结构大概如下: 其中:   scrapy.cfg:项目的主配置信息(真正爬虫相关的配置信息在settings.py文件中)   items.py:设置数据存储模板,用于结构化数据,...

weixin_30401605的博客 76

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

scrapy如何指定生成python3的项目_Windows下安装Scrapy方法及常见安装问题总结——Scrapy安装教程...

这几天,很多朋友在群里问Scrapy安装的问题,其实问题方面都差不多,今天小编给大家整理一下Scrapy的安装教程,希望日后其他的小伙伴在安装的时候不再六神无主,具体的教程如下。Scrapy是Python网络爬虫的一个框架,十分好用,深得大家的青睐,其工作原理,在在此就不赘述了。1、正常我们在Python库的时候,只需要利用cmd命令打开命令行窗口,然后输入pip install 库,就可以正常安...

weixin_39995108的博客 78

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Windows下安装Scrapy方法及常见安装问题总结——Scrapy安装教程 ...

这几天,很多朋友在群里问Scrapy安装的问题,其实问题方面都差不多,今天小编给大家整理一下Scrapy的安装教程,希望日后其他的小伙伴在安装的时候不再六神无主,具体的教程如下。 Scrapy是Python网络爬虫的一个框架,十分好用,深得大家的青睐,其工作原理,在在此就不赘述了。 1、正常我们在Python库的时候,只需要利用cmd命令打开命令行窗...

weixin_34247155的博客 139

Python爬虫入门一之综述

本文转自:  http://www.cnblogs.com/xin-xin/p/4297852.html 转自:静觅 » Python爬虫入门一之综述 Python版本:2.7,Python 3请另寻其他博文。 首先爬虫是什么? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。

Sunshine_in_Moon的专栏 1080

Python新手学习网络爬虫要做什么?

爬虫,被称为网络机器人,在FOAF社区中间,更经常的称为网页追逐者,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,主要用于搜索引擎,它将一个网站的所有内容与链接进行阅读,并建立相关的全文索引到数据库中,然后跳到另一个网站。 传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,再不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。   我们自学一段...

690
上一篇: Git 學習紀錄(1)
下一篇: Scrapy教程 - (3)如何翻頁爬取更多資料
彎彎廖
博客等级 码龄6年 0粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值