如何解决response.url如何知道我们正在请求哪个URL?Scrapy
class PostsSpider(scrapy.Spider):
name = "posts"
start_urls = ["https://blog.scrapinghub.com/pages/1/","https://blog.scrapinghub.com/pages/2/"]
def parse(self,response):
page=response.url.split('/')[-1]
我刚开始使用Scrapy,在最后一行显示respons.url.split的情况下,我感到非常困惑。我知道这是在告诉url从后向后拆分1个位置,但是我似乎无法理解response.url如何知道我们请求的url,因为我们的url在变量“ start_urls”下,但我们不反对“ start_urls”
解决方法
请注意,在定义类时,您正在创建TokenResponse.Properties
的子类,因此继承了父类的方法和属性。
scrapy.Spider
此父类具有一个名为class PostsSpider(scrapy.Spider):
(source code)的方法,该方法将使用类变量start_requests
中定义的URL创建请求。创建start_urls
对象时,它带有回调函数。当Scrapy Engine收到请求的响应时,将调用该函数。
默认的回调函数称为Request
,这就是为什么要实现名为parse
的函数的原因,该函数将解析蜘蛛中的响应。
在调用时,此回调函数接收名为parse
的参数。这不过是一个对象,其中包含有关请求响应的所有信息,包括发出请求的URL是什么。 (response
属性)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。