AttributeError при просмотре веб-страниц - PullRequest
0 голосов
/ 22 марта 2020

Моя трассировка ошибки:

AttributeError: ResultSet object has no attribute 'find'. 
You're probably treating a list of items like a single item. 
Did you call find_all() when you meant to call find()?

Мой код указан ниже:

while True:
    response= requests.get(url)
    response    
    data=response.text
    soup= BeautifulSoup(data,'html.parser') 
    apis=soup.find_all('tr',{"class":"odd views-row-first"})

    for api in apis:
        name= apis.find('td',{"class":"views-field views-field-pw-version-title"}).text
        des=apis.find('td',{'class':'views-field views-field-search-api-excerpt views-field-field-api-description hidden-xs visible-md visible-sm col-md-8'}).text
        category=apis.find('td',{'class':'views-field views-field-field-article-primary-category'}).text
        link= apis.find('a',{'class':'views-field views-field-pw-version-title'}).get('href')

        print('Name:',name,'\nDescription:', des ,'\ncategory', category ,'\nLink', link)
    url_tag=soup.find('a',{'title':'Go to next page'})
    if url_tag.get('href'):
        url= url_tag.get('href')
        print(url)
    else:
        break

1 Ответ

0 голосов
/ 23 марта 2020
from bs4 import BeautifulSoup
import requests
import pandas as pd
url="https://www.programmableweb.com/category/all/apis"
while True:
    response= requests.get(url)
    response    
    data=response.text
    soup= BeautifulSoup(data,'html.parser') 
    apis=soup.find_all('tr',{"class":["odd","even"]})

    for api in apis:
        name_tag= api.find('td',{"class":"views-field views-field-pw-version-title"})
        name=name_tag.text if name_tag else 'na'
        des_tag=api.find('td',{'class':'views-field views-field-search-api-excerpt views-field-field-api-description hidden-xs visible-md visible-sm col-md-8'})
        des=des_tag.text if des_tag else 'na'
        category_tag=api.find('td',{'class':'views-field views-field-field-article-primary-category'})
        category=category_tag.text if category_tag else 'na'
        link_tag= api.find('a',{'class':'views-field views-field-pw-version-title'})
        link=link_tag.get('href') if link_tag else 'na'
        print('Name:',name,'\nDescription:', des ,'\nCategory:', category ,'\nLink:', link)
    url_tag=soup.find('a',{'title':'Go to next page'})
    if url_tag.get('href'):
        url=url+url_tag.get('href')
    else:
        break
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...