gpt4 book ai didi

python - urlfetch 重定向到 python 中的无限循环

转载 作者:太空宇宙 更新时间:2023-11-03 14:31:51 27 4
gpt4 key购买 nike

我正在尝试加载一个重定向到自身的 url。我假设它正在加载一个 cookie 并正在寻找它,但它从来没有看到它,所以存在这个无限循环的请求。

我试过 urllib2、urlfetch 和 httplib2。没有工作。

虽然我试过了:

url = "http://www.cafebonappetit.com/menu/your-cafe/collins-cmc/cafes/details/50/collins-bistro"
thing = urllib2.HTTPRedirectHandler()
thing2 = urllib2.HTTPCookieProcessor()
opener = urllib2.build_opener(thing, thing2)
url = 'http://www.nytimes.com/2005/10/26/business/26fed.html?pagewanted=print'
page = opener.open(url)

这适用于 shell,但不适用于 Google App Engine。在 urlfetch 的文档中: http://code.google.com/appengine/docs/python/urlfetch/fetchfunction.html

在 follow_redirects 下,它说:“重定向时不处理 Cookie。如果需要处理 Cookie,请将 follow_redirects 设置为 False 并手动处理 Cookie 和重定向。”

我不知道该怎么做,而且文档似乎也没有提供任何线索。

我用谷歌搜索解决了这个问题,没有任何报告的问题可以解决我的问题。

最佳答案

多一点解释。很高兴至少网站的行为得到了解释:它需要一些 cookie,如果未设置 cookie,它会使用 cookie 设置 header 重定向到自身。您可能应该阅读 cookie 的工作原理;网站使用 Set-Cookie header 发送 cookie,浏览器必须在 Cookie header 中回显它(有一些变化)。 Python 有一个用于管理 cookie 集合的库,cookielib 可以帮助您完成这项工作。

最好使用原生的urlfetch API;它的返回对象有一个标题对象,它是一个给出所有标题的字典(例如 Set-Cookie 标题)。要发送特定的 header ,请使用 urlfetch.fetch() 函数的 header 参数。在这里您将使用 Cookie header (但请记住,您设置的 Cookie header 的格式与您收到的 Set-Cookie header 的格式不同——这就是 cookielib 的用武之地。

祝你好运!

附言。使用 curl -v 很容易看出该站点实际上发送了三个不同的 Set-Cookie header 。您可能必须处理所有这三个问题。

关于python - urlfetch 重定向到 python 中的无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9420795/

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