我怎么知道" key"的名称是什么?在字典中包含HTTP POST请求的参数?

时间:2016-09-10 14:08:03

标签: python dictionary beautifulsoup

我正在尝试创建一个Python脚本,该脚本使用POST参数发出HTTP请求。 在这个网站上:

google.com/movies

我试图制作一个使用Google搜索栏并输入电影名称的脚本(&#34; Le grand Rex&#34;是我正在寻找的电影院)< / p>

当我右键单击并显示&#34;检查元素&#34;在谷歌搜索栏上,它显示:

<input dir="" id="gbqfq" class="gbqfif" name="q" autocomplete="off" value="" placeholder="Search Movies" type="text">

我看到&#34;值&#34;将包含用户在Google搜索栏中写的内容。所以我在我的字典中添加了包含参数的键,一个名为&#34;值&#34;其中包含我正在寻找的电影(&#34; Le grand rex&#34;在我的情况下)如下:

#! /usr/bin/env python3                                                                                                                                                                                                                       

import urllib.parse
import urllib.request
from bs4 import BeautifulSoup

url = "https://www.google.com/movies"

value = {
    "name" : "q",
    "dir" : "Le Grand Rex"
    }

data = urllib.parse.urlencode(value)
data = data.encode('ascii')
the_page = urllib.request.Request(url, data)
new = urllib.request.urlopen(the_page)
#                                                                                                                                                                                                                                             
soup = BeautifulSoup(new, 'html.parser')
h2 = soup.find_all("h2")
for element in h2:
    print(element)

然而,当我检查是否打开正确的页面时(更确切地说,当用户键入&#34; Le Grand Rex&#34;在Google电影搜索栏中时应该显示的页面),但不幸的是它& #39;不是正确的。

所以:

http请求是否足以达到我的目的?

我怎么知道&#34;键&#34;的名称是什么?在字典中包含HTTP POST请求的参数?

1 个答案:

答案 0 :(得分:0)

The name attribute contains the key.

{'q': 'Le Grand Rex'}