используя более одного find_all - PullRequest
       11

используя более одного find_all

0 голосов
/ 02 сентября 2018

Я только начал изучать Python, и мне нужно вычеркнуть количество сотен счетов за конгресс из https://www.congress.gov/bill/112th-congress. Например, мне нужно перейти к H.R.6729 ниже. Структура HTML-страницы для доступа к тексту:

БИЛЛ 1. H.R.6729 - 112-й Конгресс (2011-2012)

Так что оно скрыто в «ли», а затем в «промежутке». Это повторяется для 100 счетов конгресса на веб-странице.

Код, который я написал:

import requests
from bs4 import BeautifulSoup
res = requests.get('https://www.congress.gov/bill/112th-congress', headers = {'User-agent': 'Chrome'})
soup = BeautifulSoup(res.text, 'html.parser')
bills = soup.find_all("li", {"class" : "expanded"})
len(bills) # this is 100 as there are 100 bills in the page
for bill in bills:
    bill_number = bill.find_all("span", {"class":"result-heading"})
len(bills) # this is giving me 1

Я считаю, что проблема со вторым find_all, почему на выходе всего 1 элемент?

1 Ответ

0 голосов
/ 02 сентября 2018

вы должны преобразовать

bill_number = bill.find_all("span", {"class":"result-heading"})

до

bill_number += bill.find_all("span", {"class":"result-heading"})
...