2017-02-15 56 views
0

我的代碼是下面給出如何獲得使用python的bs4 findall結果的第一行?

import requests 
import re 

from bs4 import BeautifulSoup 


page = requests.get(
    "https://catalog.data.gov/dataset?q=&sort=metadata_created+desc") 

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

# value = soup.find_all(class_='new-results') 

for hit in soup.findAll(attrs={'class': 'dataset-heading'}): 
    print(hit.text) 

我的成績在多個行如。

涵洞

愛荷華州地理地圖服務器

基於

位渦參數化對流層上層的規格/大氣模型

的不確定性的預測個別化學品的雌激素活性的演示下平流層臭氧和從體外雌激素受體轉錄激活測定(T47D-KBluc)到使用口腔暴露的體內子宮營養測定的混合物

個數據MRPAT模擬

水線ATS BG消毒數據

計算機代碼的工業無線測量分析和情景代

我的問題:

我怎樣才能得到的只有第一行如。在這種情況下'涵洞'

或者如何從bs4獲得第一行findall結果?

回答

0

我修改了一點你的代碼。

import requests 
import re 

from bs4 import BeautifulSoup 


page = requests.get(
    "https://catalog.data.gov/dataset?q=&sort=metadata_created+desc") 

soup = BeautifulSoup(page.content, 'html.parser') 
# value = soup.find_all(class_='new-results') 
#for hit in soup.find(attrs={'class': 'dataset-heading'}).text: 
a = soup.find(attrs={'class': 'dataset-heading'}).text 
print a 

正如@Sid說,使用找到只得到第一個元素。無需使用循環和findall。

+0

作品!謝謝@Vekatesh_CTA –

0

嘗試soup.find而不是soup.findAll

這隻會返回第一個結果。

相關問題