美文网首页Python新世界
我用Python把双色球的网站“黑”了!下个1.5亿大奖会是我吗

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

作者: 919b0c54458f | 来源:发表于2018-11-17 20:24 被阅读17次

    本篇主要介绍爬取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()

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

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

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/xevifqtx.html