2 日前、インターネットで興味深い質問を目にしました。「宝くじの予想は信頼できるのですか?」なぜこれほど多くの人が宝くじの予想を未だに信じているのでしょうか?
余談ですが、宝くじの予想は信頼できるのでしょうか?宝くじの予想にも個人差があり、世の中には詐欺も多く、宝くじの予想の精度が非常に高いと誤解している人もいます。
ロトの予想に関しては、「法則」を勉強する本格的な人もいて、「流派」はデータ派、グラフィック派、公式派の3つしかありません。含まれていない流派がもう 1 つあります。アナグラム、書道、絵画の流派は、蛇霊病のランクに含めることができます。
信頼でき正確な予測はどの流派ですか? 私は宝くじをほとんど買わない(買うのは楽しみ、娯楽のためです)し、調べもしないのでわかりません。しかし、どの陣営に研究すべきデータがあるにせよ、今日私が担当するのは、3D 宝くじの開始以来のすべてのデータ (当選番号、当選紙幣の枚数、売上と報酬率など) を取得する方法を手伝うことだけです。
いくつかの単純な (クロール防止メカニズムのない) 静的 Web ページをクロールするときの一般的な戦略は、ターゲット(いわゆる URL リンク) を選択し、構造(リンク構造、Web ページ構造) を観察し、実践的に考え出す(どの HTML ダウンローダー、パーサーなどを選択する) ことです。クロールのプロセスでは、次の 3 つの鋭利なツールが使用されます。
HTML ダウンローダー: HTML Web ページをダウンロードします。 HTML パーサー: 有効なデータを解析します。 データ ストレージ: 有効なデータをファイルまたはデータベースの形式で保存します。
今日は、リクエスト ライブラリとBeautifulSoup モジュールを使用して、当選した宝くじ Web ページ、福祉宝くじ 3D に関連する情報を取得し、Excel テーブルに保存します。
始める前に、ランディング ページの構造を見てください。
ターゲット Web ページの URL が一度に 1 つずつ変化することがわかります。list_x の後ろの数字はページの番号を表します。
次に、Web ページの構造を観察するのは非常に簡単です。最初の問題の宝くじ情報に対応するソース コードが tr ノードであることがわかります。BeautifulSoup ライブラリを使用して、その中の情報を抽出できます。
全体的な考え方は、福祉 3D の 14 年前の設立以来のすべての情報 (合計 246 ページ) を取得するには、個別に 246 回リクエストするだけで済みます。別のページを取得した後、BeautifulSoup ライブラリを使用して関連情報を抽出し、xlrd ライブラリを使用してデータを Excel に書き込むことができます。その後、福祉 3D のすべての情報を取得できます。結果は次のようになります。
詳細なコードは次のとおりです。
import requestsfrom bs4 import BeautifulSoupimport xlwtimport time#获取第一页的内容def get_one_page(url):headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36'}response = requests.get(url,headers=headers)if response.status_code == 200:return response.textreturn None#解析第一页内容,数据结构化def parse_one_page(html): soup = BeautifulSoup(html,'lxml') i = 0 for item in soup.select('tr')[2:-1]: yield{ 'time':item.select('td')[i].text, 'issue':item.select('td')[i+1].text, 'digits':item.select('td em')[0].text, 'ten_digits':item.select('td em')[1].text, 'hundred_digits':item.select('td em')[2].text, 'single_selection':item.select('td')[i+3].text, 'group_selection_3':item.select('td')[i+4].text, 'group_selection_6':item.select('td')[i+5].text, 'sales':item.select('td')[i+6].text, 'return_rates':item.select('td')[i+7].text }#将数据写入Excel表格中def write_to_excel(): f = xlwt.Workbook() sheet1 = f.add_sheet('3D',cell_overwrite_ok=True) row0 = ["开奖日期","期号","个位数","十位数","百位数","单数","组选3","组选6","销售额","返奖比例"] #写入第一行 for j in range(0,len(row0)): sheet1.write(0,j,row0[j]) #依次爬取每一页内容的每一期信息,并将其依次写入Excel i=0 for k in range(1,247): url = 'http://kaijiang.zhcw.com/zhcw/html/3d/list_%s.html' %(str(k)) html = get_one_page(url) print('正在保存第%d页。'%k) #写入每一期的信息 for item in parse_one_page(html): sheet1.write(i+1,0,item['time']) sheet1.write(i+1,1,item['issue']) sheet1.write(i+1,2,item['digits']) sheet1.write(i+1,3,item['ten_digits']) sheet1.write(i+1,4,item['hundred_digits']) sheet1.write(i+1,5,item['single_selection']) sheet1.write(i+1,6,item['group_selection_3']) sheet1.write(i+1,7,item['group_selection_6']) sheet1.write(i+1,8,item['sales']) sheet1.write(i+1,9,item['return_rates']) i+=1 f.save('3D.xls')def main(): write_to_excel()if __name__ == '__main__': main()
現時点で、2014 年の福祉宝くじの 3D 情報はすべてクロールできます。次号のくじの動向はどうなるでしょうか?分からない、分からない、次に宝くじに当たるかどうかはあなた次第です。宝くじプレイヤーの皆さん、私は今のところあなたを助けることしかできません!
最後に、宝くじの予想は当たるのでしょうか?理論分析についてはあまり話しませんが、2 つの質問だけします。
**命題 1:**双世丘を例にとると、双世丘の数字の次の 2 セット、1,2,3,4,5,6,7 と 3,4,8,11,22,29,7 が当たる確率はいくらですか? 誰が高くて誰が低いのか、それともすべて同じなのでしょうか?
**提案 2:** 2 番目の問題はより単純です。コインを9回投げて、すべて表が出たとします。これから 10 回目の投票をしようとしていますが、表になる確率はどのくらいですか?
それでも尋ねるなら、宝くじに従うべきルールはありますか?私の考えでは、宝くじの法則は法則は存在しない**(信じられないなら過去14年間のデータを全て分析して分析してみるべきです)**、たとえあったとしても人間の計算レベルでは計算できないものです。宝くじは娯楽であり運ゲーであり、たとえ宝くじで儲けて幸運だったとしても、その方法によって宝くじの当選率が上がるわけではありません。勝率を上げるという名の下に営利を目的とした行為は、たとえ最初は善意であったとしても、いつかは失敗します。
上記の Python 学習教材一式のフルバージョンは公式 CSDN にアップロードされていますので、必要な場合は WeChat で以下の CSDN 公式認定の QR コードをスキャンして取得できます↓↓↓