加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

我用Python把双色球的网站“黑”了!下个1.5亿大奖会是我吗?

发布时间:2020-12-17 00:35:51 所属栏目:Python 来源:网络整理
导读:本篇主要介绍爬取500彩票网,获取所有双色球的开奖结果,写入到csv文件。 (1) 分析标题 通过分析,发现标题信息在如下地方显示: 进群:548377875? 即可获取小编精心准备的资料呢!如有需要源码请单独私信! (2) 分析开奖号码 通过分析,发现开奖号码在如下

本篇主要介绍爬取500彩票网,获取所有双色球的开奖结果,写入到csv文件。

(1) 分析标题

通过分析,发现标题信息在如下地方显示:

进群:548377875? 即可获取小编精心准备的资料呢!如有需要源码请单独私信!

(2) 分析开奖号码

通过分析,发现开奖号码在如下地方显示:

(3) 分析往期开奖结果url

通过分析,发现网页是通过一个下拉菜单,选择相应的期号,会自动跳转对应的网站。

网站规律就是http://kaijiang.500.com/shtml/ssq/+"期号"+.shtml

2、思路分析

先提取网页数据,用Beautiful Soup从网页抓取数据,然后通过正则表达式,提取想要的数据。

3、代码:

import requests
from bs4 import BeautifulSoup
import re
#获取网页数据,伪装成浏览器
def gethtml(url):
 headers = {
 "Use-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) Apple
WebKit/537.36 (KHTML,like Gecko) Chrome/70.0.3538.77 Safari/537.36"
 }
 req = requests.get(url,headers = headers)
 req.encoding = "GBK"
 html = req.text
 bf = BeautifulSoup(html,"html.parser")
 return bf
#爬取标题
def gettitle(html):
 titlehtml = html.find_all("td",class_="td_title01")
 titletxt = str(titlehtml).strip()
 p1 = r'shtml">(.*?)(.*?).*?(.*?)
.*?right">(.*?)'
 titles = re.compile(p1,re.S).findall(titletxt)
 qi = list(titles[0])
 qi[2] = ('期')
 return ''.join(qi)
#爬取红色球
def getred(html):
 redhtml = html.find_all("li",class_="ball_red")
 redtxt = str(redhtml).strip()
 p1 = r'red">(.*?)'
 reds = re.compile(p1,re.S).findall(redtxt)
 return '红球:' + ' '.join(reds)
#爬取蓝色球
def getbule(html):
 bulehtml = html.find_all("li",class_="ball_blue")
 buletxt = str(bulehtml).strip()
 p1 = r'blue">(.*?)'
 bules = re.compile(p1,re.S).findall(buletxt)
 return '蓝球:' + ' '.join(bules)
#获取所有url
def getlistnum(html):
 listnumhtml = html.find_all("span",class_="iSelectBox")
 p1 = r'href="(.*?)">'
 listnums = re.compile(p1,re.S).findall(str(listnumhtml))
 return listnums[1:]
url = 'http://kaijiang.500.com/shtml/ssq/18131.shtml'
def main():
 html = gethtml(url)
 htmlurls = getlistnum(html)
 for htmlurl in htmlurls:
 ssqhtml = gethtml(htmlurl)
 a = gettitle(ssqhtml)
 b = getred(ssqhtml)
 c = getbule(ssqhtml)
 #写入txt文件
 with open(r'D:.txt','a') as f:
 print(htmlurl)
 f.write(a + '
'+ b + '
'+ c + '
')
 f.close()
if __name__ == "__main__":
 main()

代码自行拿去用吧!输出文件:

到此结束!需要源码请后台私信小编即可哦!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读