一缰冤,題目--秋名山的車(chē)速
image.png
二敢伸,分析
根據(jù)題目的要求扯饶,將頁(yè)面的四則混合算數(shù)運(yùn)算結(jié)果在2s內(nèi)提交,人工計(jì)算必然是不可能的池颈,所以我們提取頁(yè)面四則混合算數(shù)運(yùn)算尾序,計(jì)算并提交
#coding:utf-8
import requests
import re
import distutils.filelist
from bs4 import BeautifulSoup
#1,獲取網(wǎng)頁(yè)內(nèi)容躯砰,并且提取<div>內(nèi)容
url = 'http://120.24.86.145:8002/qiumingshan/'
#特別注意
session = requests.session()
res = session.get(url)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text,"html.parser")
div_contents = soup.find_all("div")
div_content = div_contents[0].text
# <div>143350709250709223654721*1433507092+2095192870+317935632*1098910792+926004113-1084542666*1034451422-725691534*1973466417-1918506529=?;</div>
#2每币,去除無(wú)效字符
div_content = div_content.replace('<div>'," ")
div_content = div_content.replace("</div>"," ")
div_content = div_content.replace("=?;"," ")
#3,計(jì)算結(jié)果
result=eval(div_content)
#4琢歇,上傳結(jié)果
post_req = session.post(url, data = {'value':result})
print(post_req.text)
特別需要注意的是:獲取頁(yè)面數(shù)據(jù)和提交結(jié)果需要保持一個(gè)同一個(gè)Session兰怠,Session能夠跨請(qǐng)求保持某些參數(shù)梦鉴,它也會(huì)在同一個(gè) Session 實(shí)例發(fā)出的所有請(qǐng)求之間保持 cookie。 別問(wèn)我為什么需要同一個(gè)Session請(qǐng)求和提交數(shù)據(jù)揭保,因?yàn)檫@個(gè)頁(yè)面的HTTP請(qǐng)求中有Session
三肥橙,知識(shí)點(diǎn)
- Request獲取頁(yè)面,以及提交結(jié)果
- 頁(yè)面元素的抓取
- Session
PS:上面頁(yè)面元素的抓取和結(jié)果提交顯得有點(diǎn)啰嗦秸侣,下面模仿網(wǎng)上精簡(jiǎn)的代碼
import requests
import re
url = 'http://120.24.86.145:8002/qiumingshan/'
session = requests.Session();
page_content = session.get(url).text
exp = re.search(r'(\d+[+\-*])+(\d+)',page_content).group()
result = eval(exp)
print(result)
post_page = session.post(url,data={'value':result})
print(post_page.text)