फिर से मुझे सुंदर सूप में href को स्क्रैप करने में समस्या हो रही है। मेरे पास उन पृष्ठों की एक सूची है जिन्हें मैं स्क्रैप कर रहा हूं और मेरे पास डेटा है लेकिन जब मैं अन्य स्क्रिप्ट में काम करने वाले विभिन्न कोड का उपयोग करता हूं तब भी मुझे hrefs नहीं मिल रहा है।

तो यहाँ कोड है और मेरा डेटा उसके नीचे होगा:

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>
0
Kamikaze_goldfish 15 सितंबर 2018, 18:34

2 जवाब

सबसे बढ़िया उत्तर

यह पूरी तरह से काम करता है:

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'])
1
jxpython 15 सितंबर 2018, 21:38

उसकी कोशिश करो:

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)
0
Oysiyl 15 सितंबर 2018, 18:39