Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python response.url如何知道我们使用哪个url';重新请求?(刮屑)_Python_Web Scraping_Scrapy_Response - Fatal编程技术网

Python response.url如何知道我们使用哪个url';重新请求?(刮屑)

Python response.url如何知道我们使用哪个url';重新请求?(刮屑),python,web-scraping,scrapy,response,Python,Web Scraping,Scrapy,Response,我刚刚开始使用Scrapy,我对最后一行的respons.url.split感到非常困惑。我知道它告诉url从向后拆分1个位置,但我似乎无法理解响应是如何进行的。url知道我们正在请求哪个url,因为我们的url位于变量“start\u url”下,但我们没有引用“start\u url”。请注意,在定义类时,您正在创建scrapy.Spider的子类,因此继承父类的方法和属性 class PostsSpider(scrapy.Spider): name = "posts&qu

我刚刚开始使用Scrapy,我对最后一行的respons.url.split感到非常困惑。我知道它告诉url从向后拆分1个位置,但我似乎无法理解响应是如何进行的。url知道我们正在请求哪个url,因为我们的url位于变量“start\u url”下,但我们没有引用“start\u url”。

请注意,在定义类时,您正在创建
scrapy.Spider
的子类,因此继承父类的方法和属性

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]
此父类有一个名为
start\u requests
()的方法,该方法将使用类变量
start\u url
中定义的URL来创建请求。当一个
请求
对象被创建时,它带有一个回调函数。这是当Scrapy引擎收到请求响应时将调用的函数

默认回调函数名为
parse
,这就是为什么您需要实现名为
parse
的函数来解析spider中的响应

调用此回调函数时,将接收名为
response
的参数。这只不过是一个对象,包含有关请求响应的所有信息,包括您发出请求的URL。(
response.url
属性)

class PostsSpider(scrapy.Spider):