from urllib.request import urlopen
from bs4 import BeautifulSoup
import requests

import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","root","密码","数据库" )

cursor = db.cursor()


list = []
#随便打开其中的一个网页
index = 'http://kaijiang.500.com/shtml/ssq/19039.shtml'

r = requests.get(index)

bsObj = BeautifulSoup(r.text, 'html.parser')
#获取网页里面的所有a标签
t1 = bsObj.find_all('a')
for t2 in t1:
#找到href的元素,并且是已下面url开头url
    t3 = t2.get('href')
    if t3 is not None and t3.startswith('http://kaijiang.500.com/shtml/ssq'):
        list.append(t3)

for url in list:
    try:
        html = requests.get(url)
        htmlObj = BeautifulSoup(html.text,'html.parser')
#找到所有的li标签,并且class是ball_red的
        red = htmlObj.find_all(name='li',attrs={"class":"ball_red"})
        balls = []
        for t11 in red:
#将li标签的value添加到balls的数组中去
            balls.append(t11.get_text())
        blue = htmlObj.find_all(name='li',attrs={"class":"ball_blue"})
        for t11 in blue:
            balls.append(t11.get_text())
        print(url, end=' ')
        print(balls)
        sql = "INSERT INTO caipiao(one, two, three, four, five, six, blue) \
        VALUES (%s, %s, %s, %s, %s, %s, %s )" % \
        (balls[0],balls[1],balls[2],balls[3],balls[4],balls[5],balls[6])
        try:
            cursor.execute(sql)
            db.commit()
        except:
            print("数据库插入异常")
            db.rollback()
    except:
        print(url+"访问超时....")  

 

实现原理就是先打开其中的一个网页查询。根据网页源码,找到其中的下拉列表,去除所有的彩票期数,和访问的url,存到list里面,然后遍历这个url的list,

根据class和li标签,分别获取红球,和篮球。然后插入到数据库。

这里用到 BeautifulSoup库用来解析网页元素。

发表评论

电子邮件地址不会被公开。