30行python代碼爬取歷年雙色球

爬取的目標鏈接:http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html

python版本:3.7;

開發工具:pycharm;

前言:爬取這個雙色球數據也是當初想學爬蟲的目的之一,獲取數據之後怎麼用這些數據就看你自己了,是用算法算出下一注的概率還是用可視化顯示出分佈圖、折線圖;

下面直接上代碼了;

import sys
import requests
from lxml import etree
 
def get_url(url):       #請求url的方法,返回html
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36',
    }
    response = requests.get(url,headers=headers)        #獲取請求的返回數據
    response.encoding = 'utf-8'         #定義編碼,不然中文輸出會亂碼;
    if response.status_code == 200:     #如果請求成功,則返回;
        return response.text
    return None
 
for q in range(1,125):      #for循環,一共124頁;
    url = 'http://kaijiang.zhcw.com/zhcw/html/ssq/list_%s.html' % (q)   #定義請求的鏈接
    html = get_url(url)         #請求url獲取返回代碼
    xpath_html = etree.HTML(html)       #xpath初始化html代碼
 
    dates = xpath_html.xpath('//table[@class="wqhgt"]//tr//td[1]//text()')      #獲取開獎日期
    result = xpath_html.xpath('//table[@class="wqhgt"]//tr//em//text()')        #獲取上色球號
    issues = xpath_html.xpath('//table[@class="wqhgt"]//tr//td[2]//text()')     #獲取期號
    # print(result)       #輸出所有雙色球的列
    # print(len(result)//7)    #輸出有幾組雙色球
    # print(dates)
    # print(issues)
    sta = 0
    end = 7
    for n in range(len(result)//7):     #雙色球7個號一組,
        print("開獎日期:" + str(dates[n]) + " --- " + "期號:" + str(issues[n]) + " --- " + str(result[sta:end]))
        sta = sta + 7
        end = end + 7

運行結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章