title: Python3 the same url,using urllib.request failed but requests succeed?
body: <p>l feel puzzled.
  My idea is that I want to  send request to the url, and then extract the POST data in the web page, and then sent to the web page.When l used the urllib.request in python,l failed,but instead that l used the requests,it works!
  Please tell me why....
  Here is the code,and the annotation is code which l used urllib.request</p>
  
  <pre><code>import urllib.request
  import http.cookiejar
  import re
  import requests
  
  
  loginUrl='https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn'
  
  #Here is the urllib.request code
  #cookies=http.cookiejar.MozillaCookieJar()
  #handler=urllib.request.HTTPCookieProcessor(cookies)
  #opener=urllib.request.build_opener(handler)
  headers={
          'Origin': 'http://passport.csdn.net',
          'Referer':'http://passport.csdn.net/account/login?from=http%3A%2F%2Fmy.csdn.net%2Fmy%2Fmycsdn',
          'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36 LBBROWSER'
          }
  
  #Here is the requests code
  s = requests.Session()
  data = s.get(loginUrl)
  data = data.text
  #request = urllib.request.Request(loginUrl)
  #response = urllib.request.urlopen(request)
  #data = response.read().decode('utf-8')
  
  
  #l get the value of lt and execution from the web page
  pattern_lt = re.compile('&lt;input type="hidden" name="lt" value="(.*?)" /&gt;',re.S)
  lt = re.findall(pattern_lt,data)
  lt = lt[0]
  pattern_exe = re.compile('&lt;input type="hidden" name="execution" value="(.*?)" /&gt;',re.S)
  exe = re.findall(pattern_exe,data)
  exe = exe[0]
  postDict = {
          'username':'qinyufeng_hdq@163.com',
          'password':'csdn690076598',
          'lt':lt,
          'execution':exe,
          '_eventId':'submit'
          }
  r = s.post(loginUrl, data=postDict)
  #postData = urllib.parse.urlencode(postDict).encode()
  #request = urllib.request.Request(loginUrl, postData,headers)
  #response = opener.open(request)
  #data = response.read().decode('UTF-8')
  print (r.text)
  </code></pre>
  
  <p>l'm not good at English and l hope you get my idea and thank you for reading my problem.</p>