[技术交流]Python爬虫案例——爬取双色球近30期的开奖号码

本文介绍了一段Python代码,利用Selenium和BeautifulSoup库从中国福利彩票官网抓取开奖结果,包括红球和蓝球号码。通过执行JavaScript路径定位DOM元素并提取文本内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cdea64cd8b394961a92a53a600c3c309.png

 源代码如下:(拿走了就点个赞收藏一下吧~)

from selenium import webdriver

from bs4 import BeautifulSoup

import time

 

def get_element_by_js_path(driver, js_path):

    """

    使用JavaScript执行DOM查询,返回查询到的元素。

    """

    return driver.execute_script(f"return document.querySelector('{js_path}')")

 

def extract_div_text(url, delay_seconds=1):

    """

    使用Selenium打开网页,执行JavaScript定位指定div,然后使用BeautifulSoup提取文本。

    """

    driver = webdriver.Chrome()

    try:

        driver.get(url)

        for i in range(1, 31): # 循环30次获取当前的开奖结果

            j = 1

            print("第" + str(2024041-i) + "期开奖号码:" + "最近第" + str(i) +"期")

            for _ in range(6): # 循环6次获取当前红球的号码

                target_div = get_element_by_js_path(driver, js_path.format(i, j))

                soup = BeautifulSoup(target_div.get_attribute('outerHTML'), 'html.parser')

                div_text = soup.get_text(strip=True)

 

                print(f"红球(第{_ + 1}次获取):{div_text}")

 

                time.sleep(delay_seconds) # 延迟一段时间,确保页面有足够时间更新

                j = j + 1

            #获取蓝球号码

            target_div_blue = get_element_by_js_path(driver, js_path_blue.format(i))

            soup_blue = BeautifulSoup(target_div_blue.get_attribute('outerHTML'), 'html.parser')

            div_text_blue = soup_blue.get_text(strip=True)

            print(f"蓝球:{div_text_blue}")

 

    finally:

        driver.quit()

 

if __name__ == '__main__':

    url = 'https://www.cwl.gov.cn/ygkj/wqkjgg/ssq/'

    #最近一期第一个红球的js路径:body > div.main > div > div > div.ygkj_wqkjgg > div > div.body-content-item > div.table.ssq > table > tbody > tr:nth-child(1) > td:nth-child(3) > div > div:nth-child(1)

    #第二期的第一个红球的JS路径:body > div.main > div > div > div.ygkj_wqkjgg > div > div.body-content-item > div.table.ssq > table > tbody > tr:nth-child(2) > td:nth-child(3) > div > div:nth-child(1)

    #最近第一期的蓝球的JS路径: body > div.main > div > div > div.ygkj_wqkjgg > div > div.body-content-item > div.table.ssq > table > tbody > tr:nth-child(1) > td:nth-child(3) > div > div.qiu-item.qiu-item-small.qiu-item-wqgg-zjhm-blue

    js_path = "body > div.main >646cf4d69b2c44fa8d17fdc4255d1f9b.png

 

Python爬虫基础案例通常从简单的网页抓取开始,比如爬取猫眼电影的数据。这里以`requests`库获取网页内容,然后用`BeautifulSoup`解析HTML,提取所需信息,并通过`pandas`将数据保存到Excel文件为例: 首先,你需要安装必要的库: ```bash pip install requests beautifulsoup4 pandas openpyxl ``` 下面是一个基本的Python爬虫脚本示例,假设我们要爬取电影名称、评分和主演信息: ```python import requests from bs4 import BeautifulSoup import pandas as pd # 爬取URL url = "https://maoyan.com/board/4" response = requests.get(url) # 解析HTML soup = BeautifulSoup(response.text, 'lxml') # 查找需要的数据元素,这里假设电影列表在class为'movie-list' movies_data = soup.find_all(class_='movie-list') # 创建空列表存储数据 data_list = [] # 遍历每部电影 for movie in movies_data: title = movie.find('a', class_='title').text rating = movie.find('i', class_='rating_num')['title'] stars = ', '.join(movie.find_all('span', class_='name')) # 将数据添加到列表 data_list.append([title, rating, stars]) # 将数据转换为DataFrame df_movies = pd.DataFrame(data_list, columns=['电影名称', '评分', '主演']) # 保存到Excel文件 filename = '猫眼电影数据.xlsx' df_movies.to_excel(filename, index=False) ``` 这个例子中,爬虫会定访问指定的猫眼电影页面,提取每个电影的基本信息,然后将其保存到一个名为`猫眼电影数据.xlsx`的Excel文件中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值