標籤:text 數學 post dex 無法 字元變數 int bsp 最大的
我寫的第一個python 指令碼是一個用來提取動態網頁的資料,盡行計算,並且提交的。
網頁的要求很明顯,就是給了一個算式。讓提交者在1.5S內提交出來。由於這個算是過於龐大,所以直接算?不存在的。
指令碼的功能在這個時候就體現出來了。
在這次的做題過程中我遇到的問題有好多。首先是我的編寫平台pycharm,因為這是我的第一個Python指令碼,也是我的第一個程式,所以對於pycharm的使用相當的不熟悉。然後就是在引用requests庫的時候。上面提示沒有這個庫,但是我明明已經用pip install requests安裝了啊。很可惜,pycharm的使用不是這樣子的,而是在它的setting裡面進行的安裝。這是第一個問題,我解決了。
然後就是用的requests.get(url)獲得的資料,然後是轉換成了text文本的格式,也就是將網頁的內容全部轉換成了字元的形式,下面這一步其實挺簡單的,也很自然,就是怎麼樣把字元提取出來,我是先用的
nPos = r.text.index(‘exp‘)
print(nPos)
也就是尋找到了對應的id是exp的那些數字所在的地方。
m1=m[515:523]
m2=m[524:532]
m3=m[533:540]
m4=m[541:549]
提取出來了這些數字對應的字串,
然後就是使用的NUM()函數,把這些字串裡面的數字(字母)摘出來,
再用int()把字元變數轉換成數字,要不然數學計算是無法進行的。
計算出來answer
這也是對應的變數的提交方向,下面是我遇到的最大的問題,就是我一開始在提交的時候用的是構造字典
com={‘answer‘:answer}
succeed=requests.get(url,params=com)
print(succeed.text)
我本以為這就完了,
但是我沒有考慮到兩次提交帶來的cookie的值是不一樣的(學長說使用類比抓包可以抓取自己編寫的指令碼的包使用的是proxies模組),所以就是說這是一個重新的請求,也就是第一次請求得到的資料已經
不同於這一次請求的到的資料了,這是兩次獨立的請求。
然後,最終的解決方案是。。。
在一開始的時候使用requests.Session()這樣的話,就可以保持在一個session()回話裡面了,所以以後的時候可以在一開始就直接用frist=requests.Session()
然後就是很自然的就轉換到了含有flag的裡面了。這道題終於完成了
python的第一個指令碼的編寫