Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.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 响应对象中的剪贴式截断问号_Python_Escaping_Scrapy - Fatal编程技术网

Python 响应对象中的剪贴式截断问号

Python 响应对象中的剪贴式截断问号,python,escaping,scrapy,Python,Escaping,Scrapy,我有一个我正在抓取的网站的URL列表。我的问题是,我无法通过第一页。我的最佳猜测是响应对象忽略了“?page=#”。这也解释了为什么在没有指定页码的情况下加载第一页,因为站点默认为第一页 代码: 输出: https://www.example.com/RP_Results.jsp?page=1 https://www.example.com/RP_Results.jsp https://www.example.com/RP_Results.jsp?page=2 https://www.examp

我有一个我正在抓取的网站的URL列表。我的问题是,我无法通过第一页。我的最佳猜测是响应对象忽略了“?page=#”。这也解释了为什么在没有指定页码的情况下加载第一页,因为站点默认为第一页

代码:

输出:

https://www.example.com/RP_Results.jsp?page=1
https://www.example.com/RP_Results.jsp
https://www.example.com/RP_Results.jsp?page=2
https://www.example.com/RP_Results.jsp
https://www.example.com/RP_Results.jsp?page=3
https://www.example.com/RP_Results.jsp
https://www.example.com/RP_Results.jsp?page=4
https://www.example.com/RP_Results.jsp
我试着避开这个问号,但是,这似乎不起作用。同样,使用Response.Replace()方法也不会导致错误。我非常感谢所有的建议


Sam

正如@soon所说,您没有将响应存储在任何地方

试试这个:

for page in page_urls:
    response = Request(url=page)
    print response.url
或者,使用响应的理想方法是执行以下操作:

for page in page_urls:
    yield Request(url=page, callback=self.callback)

其中,
self.callback
是您需要创建的一个函数,用于处理响应的刮取。

什么是
response
?它很可能没有在循环中更新。不应该用
response=Request(url=page)
替换
Request(url=page)
?谢谢,这很有效。一个非常简单的bug。我的印象是请求更改了响应对象本身。谢谢你的帮助!
for page in page_urls:
    yield Request(url=page, callback=self.callback)