如何从网站返回第n个数据集标题?

时间:2019-03-05 13:59:07

标签: python web-scraping python-requests

我正在一个python项目中,我想在该项目中返回数据库中第n个数据集的标题。用户应该能够输入一个数字,例如4,该代码将输出第4个数据集的标题。我尝试使用for循环,但是我的代码仅将第一个数据集返回4次,而不是第4个数据集。任何帮助将不胜感激!

import requests
from bs4 import BeautifulSoup

response=requests.get('http://catalog.data.gov/dataset?q=&sort=metadata_created+desc')

soup=BeautifulSoup(response.text, 'html.parser')

num=input("Enter a number:")
print(num)
data=[]

for x in range(int(num)+1):
    title=soup.find('div', attrs={'class':'notes'})
    dataSet=title.text
    data.append(dataSet)

print(data)

1 个答案:

答案 0 :(得分:0)

您应该使用find_all方法来获取所有标题。然后,您可以获取标题的num元素:

import requests
from bs4 import BeautifulSoup

response=requests.get('http://catalog.data.gov/dataset?q=&sort=metadata_created+desc')

soup=BeautifulSoup(response.text, 'html.parser')

num=input("Enter a number:")
print(num)
data=[]

titles = soup.find_all('div', attrs={'class':'notes'})

title=titles[int(num)-1]
dataSet=title.text
data.append(dataSet)

print(data)