Опять у меня проблемы с очисткой href в BeautifulSoup. У меня есть список страниц, которые я очищаю, и у меня есть данные, но я не могу получить ссылки, даже когда использую различные коды, которые работают в других скриптах.
Итак, вот код, и мои данные будут ниже:
import requests from bs4 import BeautifulSoup with open('states_names.csv', 'r') as reader: states = [states.strip().replace(' ', '-') for states in reader] url = 'https://www.hauntedplaces.org/state/alabama' for state in states: page = requests.get(url+state) soup = BeautifulSoup(page.text, 'html.parser') links = soup.findAll('div', class_='description') # When I try to add .get('href') I get a traceback error. Am I trying to scrape the href too early? h_page = soup.findAll('h3') <h3><a href="https://www.hauntedplaces.org/item/gaines-ridge-dinner-club/">Gaines Ridge Dinner Club</a></h3> <h3><a href="https://www.hauntedplaces.org/item/purifoy-lipscomb-house/">Purifoy-Lipscomb House</a></h3> <h3><a href="https://www.hauntedplaces.org/item/kate-shepard-house-bed-and-breakfast/">Kate Shepard House Bed and Breakfast</a></h3> <h3><a href="https://www.hauntedplaces.org/item/cedarhurst-mansion/">Cedarhurst Mansion</a></h3> <h3><a href="https://www.hauntedplaces.org/item/crybaby-bridge/">Crybaby Bridge</a></h3> <h3><a href="https://www.hauntedplaces.org/item/gaineswood-plantation/">Gaineswood Plantation</a></h3> <h3><a href="https://www.hauntedplaces.org/item/mountain-view-hospital/">Mountain View Hospital</a></h3>
Это прекрасно работает:
from bs4 import BeautifulSoup import requests url = 'https://www.hauntedplaces.org/state/Alabama' r = requests.get(url) soup = BeautifulSoup(r.text, 'lxml') for link in soup.select('div.description a'): print(link['href'])
Попробуйте это:
soup = BeautifulSoup(page.content, 'html.parser') list0 = [] possible_links = soup.find_all('a') for link in possible_links: if link.has_attr('href'): print (link.attrs['href']) list0.append(link.attrs['href']) print(list0)