在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

測試你的爬蟲能力是否及格

電子工程師 ? 來源:fqj ? 2019-05-22 17:29 ? 次閱讀

最近在網上看到一個非常有意思的 Python 游戲通關網站,一共有 33 關,每一關都需要利用 Python 知識解題找到答案,然后進入下一關。

很考驗對 Python 的綜合掌握能力,比如有的闖關需要用到正則表達式,有的要用到爬蟲。

我們平常學 Python 都是按章節順序、包或者模塊來學,容易前學后忘。正好可以拿這個網站來綜合測試一下對 Python 的掌握情況,以便查缺補漏。

來說說這個網站怎么玩。

mark

這是網站主頁面,很有歷史感對吧,誕生了已有十幾年了。但千萬不要因為看著像老古董而小瞧它。

mark

我們來玩玩看,點擊「get challenged」開始挑戰。

第 0 關是 Warming up 熱身環節:

這一關要求是修改 URL 鏈接,給的提示是電腦上的數學表達式:2 的 38 次方,所以大概就是需要計算出數值,然后修改url 進入下一關。

所以這關就是考 Python 的基本數值運算,你知道怎么算么?

打開 Python 自帶終端,一行代碼就能計算出結果:

mark

把原鏈接中的0替換為274877906944回車就會進入下一關:

mark

游戲這就正式開始了。圖片中的筆記本給了三組字母,很容易發現規律:前面的字母往后移動兩位就是后面的字母。

那么需要做的就是根據這個規律把下面的提示字符串,做位移解密得到真正的句子含義:

這道題考察字符串編碼和 for 循環相關知識,代碼實現如下:

1text='''gfmncwmsbgblrrpylqjyrcgrzwfylb.rfyrqufyramknsrcpq 2
ypcdmp.bmglegrglzwfylbgqglcddgagclrylbrfyr'q 3
ufwrfgqrcvrgqqmjmle.sqgleqrpgle.kyicrpylq() 4
gqpcamkkclbcb.lmuynnjwmlrfcspj.''' 5 6text_translate='' 7foriintext: 8
ifstr.isalpha(i): 9
n=ord(i)10
ifi>='y':11
n=ord(i)+2-2612
else:13
n=ord(i)+214
text_translate+=chr(n)15
else:16
text_translate+=i17print(text_translate)

得到結果:

1ihopeyoudidnttranslateitbyhand.2thatswhatcomputersarefor.3doingitinbyhandisinefficientandthat'swhythistextissolong.4usingstring.maketrans()isrecommended.nowapplyontheurl.

作者很風趣,當然不能手動去一個推算了,推薦用 string.maketrans() 這個方法解決,我們上面采取的是比較直接的方法,官方給出了更為精簡的方法:

1importstring2l=string.lowercase3t=string.maketrans(l,l[2:]+l[:2])4print(text.translate(t))

然后把 url 中的 map 改為ocr回車就來到了第 2 關:

mark

作者接著說過關的提示可能在書里(當然不可能了)也可能在網頁源代碼里。那就右鍵查看源代碼往下拉看到綠色區域,果然找到了問題:

mark

意思就是:要在下面這一大串字符里找到出現次數最少的幾個字符

考察了這么幾個知識點:

正則表達式提取字符串

list 計數

條件語句

如果是你,你會怎么做?

首先,用 Requests 請求網頁然后用正則提取出字符串,接著 for 循環計算每個字符出現的次數。

1%6104 2$6046 3@6157 4_6112 5^6030 6#6115 7)6186 8&6043 9!607910+606611]615212*603413}610514[610815(615416{60461718e119q120u121a122l123i124t125y1

可以看到出現次數最少的就是最后幾個字符,合起來是「equality」,替換 url 字符就闖過過了第 2 關進入下一關繼續挑戰。是不是有點意思?

后面每一關都需要用到相關的 Python 技巧解決,比如第 4 關:

mark

這一關作者弄了個小惡作劇,需要手動輸入數值到 url 中然后回車,你以為這樣就完了么?并沒有它有會不斷重復彈出新的數值讓你輸入,貌似無窮盡。

所以,這一關肯定不能采取手動輸入的方法闖關,自然要用到 Python 了。要實現自動填充修改 url 回車跳轉到新 url,循環直到網頁再也無法跳轉為止這一功能。

如果是你,你會怎么做?

其實,一段簡單的爬蟲加正則就能搞定。思路很簡單,把每次網頁中的數值提取出來替換成新的 url 再請求網頁,循環下去,代碼實現如下:

1importrequests 2importre 3importos 4 5#首頁url 6resp=requests.get( 7'http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345').text 8url='http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=' 9#計數器10count=011whileTrue:12try:13#提取下一頁動態數值14nextid=re.search('d+',resp).group()15count=count+116nextid=int(nextid)17except:18print('最后一個url為:%s'%nexturl)19break2021#獲取下一頁url22nexturl=url+str(nextid)23print('url%s:%s'%(count,nexturl))24#重復請求25resp=requests.get(nexturl).text

輸出結果如下:

可以看到,最終循環了 85 次找到了最后一個數字16044,輸入到 url 中就闖關成功。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • python
    +關注

    關注

    56

    文章

    4801

    瀏覽量

    84882
  • 數值運算
    +關注

    關注

    0

    文章

    2

    瀏覽量

    5048

原文標題:33關Python游戲,測試你的爬蟲能力到底及格不?

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Python數據爬蟲學習內容

    現行環境下大數據與人工智能的重要依托還是龐大的數據和分析采集,就如淘寶、京東、百度、騰訊級別的企業能夠通過數據可觀的用戶群體獲取需要的數據。而一般企業可能就沒有這種通過產品獲取數據的能力和條件。因此
    發表于 05-09 17:25

    Python爬蟲與Web開發庫盤點

    ,高層次的web抓取網頁,并從web站點的頁面中提取結構化的數據Scrapy用途廣泛,可以用于數據挖掘、監測和自動化測試。最爽的就是它是一個框架,任何人都可以根據需求方便的修改,里面有很多類型爬蟲的基
    發表于 05-10 15:21

    Python 爬蟲:8 個常用的爬蟲技巧總結!

    費的。7、gzip壓縮有沒有遇到過某些網頁,不論怎么轉碼都是一團亂碼。哈哈,那說明還不知道許多web服務具有發送壓縮數據的能力,這可以將網絡線路上傳輸的大量數據消減 60% 以上。這尤其適用于 XML
    發表于 01-02 14:37

    爬蟲犯罪有多遠

    不要在爬蟲犯罪的邊緣瘋狂試探!
    發表于 04-11 16:04

    爬蟲可以采集哪些數據

    一、爬蟲可以采集哪些數據   1.圖片、文本、視頻   爬取商品(店鋪)評論以及各種圖片網站,獲得圖片資源以及評論文本數據。   掌握正確的方法,在短時間內做到能夠爬取主流網站的數據,其實非常容易
    發表于 10-15 17:25

    應對反爬蟲的策略

    被機器人肆意地濫用,網站的安全和流量費用就會面臨嚴重威脅,因此很多網站都會想辦法防止爬蟲程序接入。為了能夠更好的爬蟲,我們需要使用可變的ip地址,建立網絡爬蟲的第一原則是:所有信息都可以偽造。但是有
    發表于 12-12 17:39

    網絡爬蟲之關于爬蟲http代理的常見使用方式

    在做爬蟲的過程中,如果爬取的頻率過快,不符合人的操作模式。有些網站的反爬蟲機制通過監測到你的IP異常,訪問頻率過高。就會對進行封IP處理。目前已有比較多的第三方平臺專門進行代理IP
    發表于 04-26 17:43

    什么是爬蟲

    什么是爬蟲爬蟲的價值?最簡單的python爬蟲爬蟲基本架構
    發表于 11-05 06:13

    0基礎入門Python爬蟲實戰課

    情況及薪資水平……諸如此類,不勝枚舉。只要是信息,只要你能看到它,想批量獲取它,都可以使用爬蟲來實現。但,自學爬蟲存在不少障礙,可能會有這些困擾:看了書,上了課,卻依然不會爬蟲自學遇
    發表于 07-25 09:28

    python網絡爬蟲概述

    數據,則可以通過爬蟲從網上抓取;在Web安全方面,使用爬蟲可以對網站是否存在某一漏洞進行批量驗證、利用;在產品研發方面,可以采集各個商城物品價格,為用戶提供市場最低價;在輿情監控方面,可以抓取、分析新浪微博
    發表于 03-21 16:51

    Python爬蟲速成指南讓快速的學會寫一個最簡單的爬蟲

    本文主要內容:以最短的時間寫一個最簡單的爬蟲,可以抓取論壇的帖子標題和帖子內容。 本文受眾:沒寫過爬蟲的萌新。
    的頭像 發表于 06-10 09:57 ?7112次閱讀
    Python<b class='flag-5'>爬蟲</b>速成指南讓<b class='flag-5'>你</b>快速的學會寫一個最簡單的<b class='flag-5'>爬蟲</b>

    爬蟲是如何實現數據的獲取爬蟲程序如何實現

    進入大數據時代,爬蟲技術越來越重要,因為它是獲取數據的一個重要手段,是大數據和云計算的基礎。那么,爬蟲到底是如何實現數據的獲取的呢?今天和大家分享的就是一個系統學習爬蟲技術的過程:先掌握爬蟲
    發表于 01-02 16:30 ?10次下載
    <b class='flag-5'>爬蟲</b>是如何實現數據的獲取<b class='flag-5'>爬蟲</b>程序如何實現

    網絡爬蟲是否合法

    網絡爬蟲在大多數情況中都不違法,其實我們生活中幾乎每天都在爬蟲應用,如百度,在百度中搜索到的內容幾乎都是爬蟲采集下來的(百度自營的產品除外,如百度知道、百科等),所以網絡
    的頭像 發表于 03-21 17:20 ?1.3w次閱讀

    Python爬蟲 真的會寫爬蟲嗎?

    以為真的會寫爬蟲了嗎?快來看看真正的爬蟲架構!
    的頭像 發表于 05-02 17:02 ?3926次閱讀
    Python<b class='flag-5'>爬蟲</b> <b class='flag-5'>你</b>真的會寫<b class='flag-5'>爬蟲</b>嗎?

    爬蟲的學習方法

    爬蟲的本質就是模仿人類自動訪問網站的程序,在瀏覽器中做的大部分動作基本都可以通過網絡爬蟲程序來實現。
    的頭像 發表于 02-23 14:11 ?873次閱讀
    <b class='flag-5'>爬蟲</b>的學習方法
    主站蜘蛛池模板: 国语自产拍在线观看7m| 91大神视频在线播放| 四虎亚洲精品| 天天天狠天天透天天制色| 免费一级欧美片在线观免看| 这里只有精品在线| 免费播放视频| 免费一级毛片正在播放| 不卡一级毛片免费高清| 免费日本黄色片| 激情亚洲色图| 欧美人与动性xxxxbbbb| 天天色天天射天天干| 国产福利vr专区精品| japanese69xxx日本| 亚洲乱码一区二区三区在线观看| 69japanese日本100| 乱码精品一区二区三区| 婷婷在线观看香蕉五月天| www成人在线观看| 黄色免费片| 黄网站色视频| ts 人妖 另类 在线| 手机看片日本| 天天干天天谢| 天天综合在线视频| 久久久精品午夜免费不卡| 免费无毒片在线观看| 91md天美精东蜜桃传媒在线| 在线看免费视频| 色天天综合色天天碰| 天天综合网色| 国产精品vv在线| 国产精品美女一级在线观看| 狠狠干天天干| 国产成人毛片视频不卡在线 | 一级特黄aaaaaa大片| 国产1区2区三区不卡| 国产精品三区四区| 国产精品高清一区二区三区 | 欧美人另类zooz|