【问题标题】:Performing a get request in Python在 Python 中执行获取请求
【发布时间】:2012-09-29 01:02:26
【问题描述】:

请告诉我为什么这些相似的代码列表会得到不同的结果。 第一个(yandex.ru)获取请求页面,另一个获取站点主页(moyareklama.ru)

import urllib

base = "http://www.moyareklama.ru/single_ad_new.php?"
data = {"id":"201623465"}
url = base + urllib.urlencode(data)
print url
page = urllib.urlopen(url).read()
f = open ("1.html", "w")
f.write(page)
f.close()
print page

##base = "http://yandex.ru/yandsearch?"
##data = (("text","python"),("lr","192"))
##url = base + urllib.urlencode(data)
##print url
##page = urllib.urlopen(url).read()
##f = open ("1.html", "w")
##f.write(page)
##f.close()
##print page

【问题讨论】:

  • 我猜因为它们是不同的站点,所以您会得到不同的结果...
  • 第一个示例返回请求页面,站点的另一个主页
  • 使用Requests 模块让您的生活更轻松
  • 我不明白为什么在第一个示例 url 中返回主页?但是如果我在浏览器中复制这个 url,我会收到请求页面。

标签: python parsing url get


【解决方案1】:

您使用 urllib.urlopen 和您的浏览器得到不同的原因很可能是因为您的浏览器可以使用 javascript 和 meta/refresh 标签以及标准 HTTP 301/302 响应进行重定向。我很确定 urllib 模块只会被 HTTP 301/302 响应重定向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多