1. 程式人生 > 程式設計 >通過python3實現投票功能程式碼例項

通過python3實現投票功能程式碼例項

這篇文章主要介紹了通過python3實現投票功能程式碼例項,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

import urllib.request
# cd C:\Python36-32\Scripts
# pip install BeautifulSoup
from bs4 import BeautifulSoup


def vote(get_url,post_url,option):
  # 訪問投票頁面,拿到cookie
  resp = urllib.request.urlopen(get_url)
  cookie = resp.getheader('Set-Cookie')
  # print(cookie)

  # 讀取response資訊
  html = resp.read()
  # HTML解析器,拿到vote_option
  bs = BeautifulSoup(html,"html.parser")
  # 後臺校驗的動態驗證碼,隨自己業務調整
  secret_key = bs.find('input',id='secret_key').get("value")
  # print(vote_option)

  # hearders部分,cookie等
  headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Cookie': cookie}

  # post提交的資料,第一個為選中的複選框選項(多箇中間逗號分隔),第二個為動態碼(後臺校驗)
  data_json = {'option': option,'secret_key': secret_key}
  # string轉為byte型別,因為客戶端校驗要求
  data = urllib.parse.urlencode(data_json).encode("utf-8")
  # post請求,提交投票資料
  req = urllib.request.Request(post_url,headers=headers,data=data)
  response = urllib.request.urlopen(req)
  # 檢視返回結果,轉碼為中文
  print(bytes.decode(response.read()))
def deal():
  # get連線、post連結、選項 根據自己業務修改
  get_url = ""
  post_url = ""
  option = ""
  vote(get_url,option)
deal()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。