python爬虫之路scrapy

 2023-09-06 阅读 23 评论 0

摘要:python里面的yield怎么用? yield from是什么意思? scrpay The best way to learn is with examples, and Scrapy is no exception. 常用命令 scrapy startporject scrapy crawl hello scrapy shell http://www.qq.com 打开页面 提取数据 保存参数 scrapy概述 就

python里面的yield怎么用?
yield from是什么意思?

scrpay

The best way to learn is with examples, and Scrapy is no exception.

常用命令
scrapy startporject
scrapy crawl hello
scrapy shell http://www.qq.com

打开页面
提取数据
保存参数

scrapy概述

就如同web开发有框架flask spring等等,爬虫也是有框架的,scrapy就是一个爬虫框架,或者说是爬虫引擎。

安装

pip3 install scrapy

使用

以爬取这个网站为例子 quotes.toscrape.com

  1. 第一创建一个爬虫应用。
    scrapy startproject tutorial
    目录结构如下
    在这里插入图片描述
  2. 第二步写一个爬虫。爬取网站提取数据。

class QuotesSpider(scrapy.Spider):name = "quotes"def start_requests(self):urls = ['http://quotes.toscrape.com/page/1/','http://quotes.toscrape.com/page/2/',]for url in urls:yield scrapy.Request(url=url, callback=self.parse)def parse(self, response):page = response.url.split("/")[-2]filename = 'quotes-%s.html' % pagewith open(filename, 'wb') as f:f.write(response.body)self.log('Saved file %s' % filename)

解释说明
start_requests()
parse()

运行爬虫
scrapy crawl quotes

保存数据
parse yield的结果可以持久化的保存起来

follow links
首先定位到页面的links,注意这里的links可能是相对的,要进行转换
你可以在parse里面yield scrapy.Request,
response.follow 是Request的快捷写法

使用参数
使用场景,例如外部调用爬虫任务传递一个参数过来

  1. 第三步。在命令行里面导出爬取的数据。
    可以通过shell进行调试
    scrapy shell 'http://quotes.toscrape.com/page/1/'

view(response) 可以在浏览器里面打开

  1. 第四步递归爬取链接。
  2. 第五步使用爬虫参数。

scrapy架构

在这里插入图片描述

遗留问题

scrapy可以部署成一个服务吗?

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/6855.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息