curl截断部分查询字符串?

2024-04-24 11:59:54 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我试图通过Scrapyd让几百个spider在EC2实例上运行。我有很多这样的网址:

https://items.initrode.com/TGWebHost/searchitems.aspx?partnerid=25233&siteid=5296

但当我把蜘蛛从卷曲处弄出来。。。在

^{pr2}$

…然后检查我的spider上的start_URL列表,我传入的URL似乎缺少&siteid值,如下所示:

https://items.initrode.com/TGWebHost/searchitems.aspx?partnerid=2523

经过数小时的研究,我发现curl在'&;'字符处停止处理,并认为您试图将此进程推到后台,我观察到确实如此,最终结果是我遗漏了查询字符串的一部分。在

我已经设法解决了这个问题,用%26代替了我所有URL中的&;但是为什么当URL一开始就用引号括起来时curl会这样解释呢?我以为这些引文是为了防止类似的问题发生?在


Tags: httpscomurlitemscurlec2spideramp
1条回答
网友
1楼 · 发布于 2024-04-24 11:59:54

我查看了文档,并且curl-d选项的情况下确实将&解释为分隔符,因此您不能在那里使用它,需要正确地执行它。{cd4>在python中可以得到如下结果:

https%3A//items.initrode.com/TGWebHost/searchitems.aspx%3Fpartnerid%3D25233%26siteid%3D5296

然后运行curl,如下所示:

^{pr2}$

所以问题不在我最初建议的shell引用中,而且严格地说它不是curl解释参数的方式,而是在服务器端解释查询字符串的方式,其中{}需要解释为分隔符。在

相关问题 更多 >