Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python登录网站?_Python_Authentication - Fatal编程技术网

如何使用python登录网站?

如何使用python登录网站?,python,authentication,Python,Authentication,我看到了另一个问题: 然而,对这个答案的直接修改对我来说不起作用,所以我想知道如何才能实现我的目标 为了提供上下文,我正在尝试登录https://mog.com/hp/sign_in然后从以下页面提取我的播放列表的名称:http://mog.com/my_mog/playlists 我认为,对于那些知道自己在做什么的人来说,这应该是非常简单的。一些基本的代码可以登录到网站并访问受密码保护的页面,如果你能用一两句话解释代码中的每一行都在做什么,那就更好了,这样我就可以更好地理解代码在做什么。试试:

我看到了另一个问题:

然而,对这个答案的直接修改对我来说不起作用,所以我想知道如何才能实现我的目标

为了提供上下文,我正在尝试登录
https://mog.com/hp/sign_in
然后从以下页面提取我的播放列表的名称:
http://mog.com/my_mog/playlists

我认为,对于那些知道自己在做什么的人来说,这应该是非常简单的。一些基本的代码可以登录到网站并访问受密码保护的页面,如果你能用一两句话解释代码中的每一行都在做什么,那就更好了,这样我就可以更好地理解代码在做什么。

试试:

编辑:
要获取链接,您可以添加以下内容:

for link in br.links():
    print link.url, link.text
或者,从playlist.html开始,您可以使用和regex:

from BeautifulSoup import BeautifulSoup
import re
soup = BeautifulSoup(file('playlist.html').read())
for link in soup.findAll('a', attrs={'href': re.compile("your matching re")}):
    print link.get('href')

你改变了什么?你怎么知道它不适合你?我更改了网站和登录信息。我知道它不起作用,因为我打印了页面上的链接,但它不是相同的链接。它从注册页面打印出链接。也许我没有正确修改这一行:
login\u data=urllib.urlencode({'username':username,'j_password':password})
,但我不知道如何计算要进行的替换。“我不知道如何计算要进行的替换”你是说你不知道登录表单上的字段名是什么?您是否查看了带有登录表单的页面,以查看
标记包含哪些字段?是的,我尝试了“user[login]”和“user[password]”,但这些都不起作用。我让它起作用,并将html拉到一个文件中,正如所写的那样。如果我想从mog.com/my_mog/playlists中检索与模式匹配的链接,该命令是什么?我很难为mechanize找到清晰、易于搜索的文档。@jonderry我认为没有命令,您可能需要使用regexp来匹配模式
from BeautifulSoup import BeautifulSoup
import re
soup = BeautifulSoup(file('playlist.html').read())
for link in soup.findAll('a', attrs={'href': re.compile("your matching re")}):
    print link.get('href')