爬取的目標鏈接: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
運行結果: