【问题标题】:File downloading script (urllib python) and regular expressions文件下载脚本(urllib python)和正则表达式
【发布时间】:2011-01-12 22:42:58
【问题描述】:

多个小问题。

1) file.name 的命令是什么?我知道它存在...当我执行 file.info() 时,它出现在 filename="blah blah" 下,所以我尝试了 file.info()[index] 但解释器对此表示不满。我在文档中的任何地方都找不到它的对象类型,HTTPResponse。

我有

#Download file
print("downloading")
file = urllib.request.urlopen(URL + "/index.php?app=downloads&module=display&section=download&do=confirm_download&id=881"))


#Write file
out = open(SAVE_FOLDER + file.name , "wb") ###file.name DOESNTWORK
out.write(file)
out.close()

3) #for info im 登录到 invision 电源板。 因此,为了了解如何登录该站点,我使用了 Wire Shark 并找到了它发送到该站点的 http 请求。它有一个基于行的文本数据部分,表示referer = blah blah blah。所以我知道我必须将这些数据发送到服务器才能登录。但它不起作用,所以我搜索了一些,偶然发现我还必须发送用户名和密码。即使referer url里面有用户名和密码。

所以...我的问题。我怎么会发现数据必须是

values  = "username" : USERNAME, 
          "password" : PASSWORD,          
          "referer"  : "http%3A%2F%2FsomeURL.com%2Findex.php%3F&username=" + USERNAME + "&password=" + PASSWORD + "&rememberMe=1"

而不是像我那样偶然发现它,因为wireshark上的POST消息中只有referer。

希望这就是一切。在其他问题中可能会有一些重叠,对此感到抱歉。 提前致谢

编辑:找出问题 2。

【问题讨论】:

  • 问题是url和url名称无关。网址是/index.php?app=downloads&module=display&section=download&do=confirm_download&id=881,文件名是6.71_beta13.w3x
  • 啊,你说得对,不需要引用者。我明白我现在必须做什么了。非常感谢。为了获得文件名,我只是在 file.info() 上使用了一些 re's

标签: python-3.x urllib


【解决方案1】:
  1. URL 没有名称。您获得的最接近的是 URL 本身,您可以使用 file.geturl() 获得。

  2. 您会通过查看登录表单及其包含的字段来发现这一点。推荐人在这里很可能无关紧要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    相关资源
    最近更新 更多