栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

了解Scrapy中的回调

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

了解Scrapy中的回调

对于蜘蛛,抓取周期经历如下过程:

  1. 首先,生成初始请求以爬网第一个URL,然后指定要调用的回调函数,并从这些请求中下载响应。

要执行的第一个请求是通过调用

start_requests()
(默认情况下)
Request
为方法中指定的URL 生成start_urls的
parse
方法以及作为请求的回调函数的方法而获得的。

  1. 在回调函数中,你解析响应(网页)并返回

    Item
    对象,
    Request
    对象或两者的迭代。这些请求还将包含一个回调(可能相同),然后由Scrapy下载,然后由指定的回调处理响应。

  2. 在回调函数中,通常使用选择器(但也可以使用BeautifulSoup,lxml或你喜欢的任何机制)来解析页面内容,并使用已解析的数据生成项目。

  3. 最后,通常将从spider返回的项目保存到数据库(在某些项目管道中)或使用Feed导出写入文件。

答案:

line in
之前
'item'
,该
request.meta
行如何执行?
response.metaparse_page2

spider由

Scrapy
引擎管理。它首先从中指定的URL发出请求,
start_urls
然后将其传递给下载器。下载完成后,将调用请求中指定的回调。如果回调返回另一个请求,则重复同样的事情。如果回调返回
Item
,则该项目将传递到管道以保存抓取的数据。

退回的物品从哪

parse_page2
里去?

有什么需要return request陈述的parse_page1?我认为提取的物品需要从这里退回吗?

如文档中所述,每个回调(

parse_page1
parse_page2
)都可以返回
a Request
an Item
(或它们的可迭代)。
parse_page1
返回
Request
不是
Item
,因为需要从其他URL刮除其他信息。第二个回调parse_page2返回一个项目,因为所有信息都已被抓取并准备好传递到管道。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/383177.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号