gpt4 book ai didi

python - 从 html 表中抓取数据,选择标题之间的元素

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:20 26 4
gpt4 key购买 nike

我正在尝试从以下网址中抓取信息:http://www.mobygames.com/game/xbox360/wheelman/credits使用此代码;

# Imports
import requests
from bs4 import BeautifulSoup
credit_link = "http://www.mobygames.com/game/xbox360/wheelman/credits"
response = requests.get(credit_link)
soup = BeautifulSoup(response.text, "lxml")
credit_infor= soup.find("div", class_="col-md-8 col-lg-8")
credit_infor1 = credit_infor.select('table[summary="List of Credits"]')[0].find_all('tr')

这是我需要获取的格式:

info          credit_to  studio                   game       console
starring 138920 starring Wheelman Xbox 360
Studio Heads 151851 Midway Newcastle Studio Wheelman Xbox 360
Studio Heads 73709 Midway Newcastle Studio Wheelman Xbox 360

其中 info 对应于每行中的第一个“td”,credit_to 对应于特定贡献者的 id(例如 138920 是 Vin Diesel 的 id),主演对应于标题。我想我可以处理所有事情,除了在每行附近获取工作室名称(即标题)(稍后将从中途纽卡斯尔工作室切换到圣地亚哥质量保证团队等等)。我怎样才能做到呢?

最佳答案

根据您的程序,credit_infor1 将包含所有 tr 标记(行)的列表。如果您检查 HTML,其中包含标题 (studio) 的行,它们没有 class 属性。对于所有其他行,它们具有 class="crln" 属性。

因此,您可以迭代所有行并使用 has_attr() 检查当前行是否具有 class 作为属性。函数(有点隐藏在文档中)。如果该属性不存在,请更改标题,否则继续抓取其他数据。

继续你的计划:

studio = ''
for row in credit_infor1:
if not row.has_attr('class'):
studio = row.h2.text
continue

# get other values that you want from this row below

info = row.find('td').text
# similarly get all the other values you need each time

print(info + ' | ' + studio)

部分输出:

Starring | Starring
Studio Heads | Midway Newcastle Studio
Executive Producers | Midway Newcastle Studio
Technical Directors | Midway Newcastle Studio
Lead Programmers | Midway Newcastle Studio
...
QA Manager | San Diego QA Team
Compliance QA Manager | San Diego QA Team
QA Data Analyst | San Diego QA Team
...
SQA Analyst | SQS India QA
QA Team | SQS India QA
Executive Producers | Tigon Studios
Head of Game Production | Tigon Studios
...

关于python - 从 html 表中抓取数据,选择标题之间的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49633578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com