gpt4 book ai didi

python - 如何在 Scrapy 中创建带方括号的 url 请求?

转载 作者:可可西里 更新时间:2023-11-01 16:41:36 26 4
gpt4 key购买 nike

我正在尝试抓取起始 url 的页面

'http:listado.example.com.ar/ARTICLE#D[A:ARTICLE]'

其中 ARTICLE 是蜘蛛调用的参数。问题是,当我运行我的蜘蛛时,我从服务器收到 111 Connection Refused。查看 scrapy 的日志,我看到了下一个:

2015-12-08 17:50:06 [scrapy] DEBUG: Retrying <GET http:listado.example.com.ar/guitarra#D%5BA:guitarra%5D> (failed 1 times): Connection was refused by other side: 111: Connection refused.

事实证明,蜘蛛发送的请求分别更改了 '%5B' 和 '%5D' 的字符 '[' 和 ']'。

查询start_request方法,发现Request实例化改变了字符。这是我重写的 start_request:

 def start_requests(self):
dareq = Request(url='http:listado.example.com.ar/%s#D[A:%s]' % (self.article_name,self.article_name), callback=self.parse_entry)
self.logger.info('REQUEST TO: %s' % dareq.url)
yield dareq

运行蜘蛛我得到下一个日志:

2015-12-08 17:50:06 [merclib] INFO: REQUEST TO: http:listado.example.com.ar/guitarra#D%5BA:guitarra%5D

使用replace方法不行,dareq.url字段是只读的,手动修改字段无法修复。

我怎样才能创建一个有效地正确发送带有这些方括号的 ulr 的请求?

最佳答案

google 搜索“百分比编码”。url 中不允许有方括号,因此 Request 方法会自动对您的 url 进行编码。

关于python - 如何在 Scrapy 中创建带方括号的 url 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34166464/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com