python的第一個指令碼的編寫

來源:互聯網
上載者:User

標籤: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的第一個指令碼的編寫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.