首页 > 解决方案 > Python BSoup提取href文本

问题描述

我正在编写一些 Python 来抓取彩票号码和表格中的其他列。

我遇到的问题是尝试使用 Python 和 BeautifulSoup在接下来的2001 年 1 月提取 2001 年 1 月。

到目前为止我创建的代码

import requests
from bs4 import BeautifulSoup

URL = "https://www.lotterysearch.org/results/2001"

headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Safari/605.1.15"
}
page = requests.get(URL, headers=headers)

soup = BeautifulSoup(page.content, "html.parser")

table = soup.find("table", {"style": "width:100%"})
# Get each table row 'tr'
for row in table.find_all("tr"):

    cells = row.findAll("td")

    # print(row.find("td").find("a"))
    draw_year = cells[0].find("a")
    draw_date = cells[0].find(text=True)

    #   draw_date = cells[0].find(text=True)
    winning_numbers = cells[1].find(text=True)
    jackpot = cells[3].find(text=True)
    draw_number = cells[4].find(text=True)

    print(draw_year)

打印的结果是

2001 年 1 月

我可以做一些子串来拉出 2001 年 1 月,但我想找到这样做的正确方法。

标签: pythonpython-3.xbeautifulsoup

解决方案


我做了这个快速的改变。请让我知道它是否有帮助。我认为它会打印一个相对 URL,但您可以将它与基本 URL 结合使用。

draw_year = cells[0].find("a", href=True)

if draw_year is not None:
        print(draw_year['href'])


推荐阅读