[No.003-0]爬虫网易赔率数据并导入到mysql数据库
admin
2023-07-31 01:50:49
0
    首先,我拥有这个导入赔率的需求,并且,我需要的是所有的数据赔率,我需要把某些脏赔率(极有可能不会出现的赔率,误导彩迷的赔率)删除,并且我需要知道这些赔率的比分,删除这些赔率,可以逆推正确比分以及赔率的区间。
    所以我不得不做的就是把每天的赔率数据导入到我自己的数据库,根据一定的运算法则,将可能性筛选出来,然后我再做进一步的判断。
#encoding:utf-8
import urllib2
from bs4 import BeautifulSoup

website = \"http://caipiao.163.com/order/jczq-hunhe/#from=leftnav\"
page = urllib2.urlopen(website)
soup = BeautifulSoup(page)
for incident in soup(\'td\'):
    print incident
得到类似于以下的结果集:
负其他

120.00
0
14.00
1
5.20
2
3.55
3
3.50
4
4.70
5
7.50
6
13.00
7+
18.00
……

这里得到的结果,仅仅是赔率的结果,而且需要吧gametype的内容筛选出来,得到紧缺的,总进球 7球 18赔率的结果;

接下来

提取td中的内容,使用re正则来提取;
直接在for循环中使用re,避免使用文件作为缓存

#查询半全场的赔率
for item in soup.findAll(\"td\",{\"gametype\":\"bqc\"}):
    print item.find(\"div\").string
#查询表中的标签,并将内容筛选出来
#半全场赔率,依次为\"胜胜\",\"胜平\",\"胜负\",\"平胜\",\"平平\",\"平负\",\"负胜\",\"负平\",\"负负\"
for item in soup.findAll(\"td\",{\"gametype\":\"bqc\"}):
     print item.find(\"div\").string

#再查询比分赔率
#先是胜赔,1:0~胜其他,之后是平赔,0:0~3:3,平其他,并将其导入比分赔率bfpl
temp = [\"1:0\",\"2:0\",\"2:1\",\"3:0\",\"3:1\",\"3:2\",\"4:0\",\"4:1\",\"4:2\",\"5:0\",\"5:1\",\"5:2\",\"胜其他\",\"0:0\",\"1:1\",\"2:2\",\"3:3\",\"平其他\",\"0:1\",\"0:2\",\"1:2\",\"0:3\",\"1:3\",\"2:3\",\"0:4\",\"1:4\",\"2:4\",\"0:5\",\"1:5\",\"2:5\",\"负其他\"]
i = 1
bfpl = []
for item in soup.findAll(\"td\",{\"gametype\":\"bf\"}):
    bfpl.append(item.find(\"div\").string)

#---------------------
#构建比分赔率字典
i = 1
temp = [\"1:0\",\"2:0\",\"2:1\",\"3:0\",\"3:1\",\"3:2\",\"4:0\",\"4:1\",\"4:2\",\"5:0\",\"5:1\",\"5:2\",\"胜其他\",\"0:0\",\"1:1\",\"2:2\",\"3:3\",\"平其他\",\"0:1\",\"0:2\",\"1:2\",\"0:3\",\"1:3\",\"2:3\",\"0:4\",\"1:4\",\"2:4\",\"0:5\",\"1:5\",\"2:5\",\"负其他\"]
len



#再查询总进球赔率
for item in soup.findAll(\"td\",{\"gametype\":\"zjq\"}):
     print item.find(\"div\").string

#----------------------------------------
#查询所有的主队、客队名字数据以及场次数据
#主队hostTeam
i = 1
hostTeam = []
for item in soup.findAll(\"em\",{\"class\":\"hostTeam\"}):
    hostTeam.append(item.b.string)
    i+=1

for item in hostTeam:
    print hostTeam[item]

#客队guestTeam
i = 1
guestTeam = []
for item in soup.findAll(\"em\",{\"class\":\"guestTeam\"}):
    guestTeam.append(item.b.string)
    i+=1

for item in guestTeam:
    print guestTeam[item]

#------------------
#场次以及主队客队数据
#------------------
i = 1
for item in hostTeam:
    print \'---------\'
    print screening[i],hostTeam[i],guestTeam[i]
    i+=1

#-----------------------
#场次信息 jtip
i = 1
screening = []
for item in soup.findAll(\"span\",{\"class\":\"co1\"}):
    screening.append(item.i.string)
    i+=1

#遍历场次数据
i=1
for item in screening:
    print screening[i]
    i+=1

#------------------
#做出场次+比分的list-->scbf[]
for item in screening:
    i=0
    while i

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...