Python:为特定内容抓取表

2024-05-15 21:10:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从网站上的特定表中刮取特定部分。在

URL = https://h10145.www1.hpe.com/downloads/SoftwareReleases.aspx?ProductNumber=J9775A

在网站内,有一个HTML表格,我正试图从中,我可以做,但是,我得到了许多其他项目的表我不需要。如果您查看URL,该表由多个下拉列表组成,我只需要“currentleases”列表。在

通过检查元素,我可以使用Screenshot

如您所见,有许多表行的类型为“Current_Releases”,但我不知道如何提取这些行。在

我使用的是python3.2和BeautifulSoup,当然还有requests和csv

这是我的代码:

^{pr2}$

在谈到python时,我是一个新手,因此提前感谢您的建议和帮助


Tags: httpscomurl列表网站downloadshtml表格
1条回答
网友
1楼 · 发布于 2024-05-15 21:10:36

table.find_all('tr')替换为table.find_all('tr', {'releasetype': 'Current_Releases')将发现具有属性releasetype的{}为Current_Releases。在

有关详细信息,请签出docs。在

更新:添加完整代码

import csv
import requests
from bs4 import BeautifulSoup

url = "https://h10145.www1.hpe.com/downloads/SoftwareReleases.aspx?ProductNumber=J9775A"
r = requests.get(url)
soup = BeautifulSoup(r.content, 'lxml')
table = soup.find('table', attrs={"class": "hpui-standardHrGrid-table"})
headers = [header.text for header in table.find_all('th')]
rows = []

for row in table.find_all('tr', {'releasetype': 'Current_Releases'}):
    item = []
    for val in row.find_all('td'):
        item.append(val.text.encode('utf8').strip())
    rows.append(item)

with open('output_file.csv', 'w') as f:
  writer = csv.writer(f)
  writer.writerow(headers)
  writer.writerows(rows)

给了我一个CSV文件和输出

^{pr2}$

相关问题 更多 >