ब्राज़ीलियाई फ़ुटबॉल चैम्पियनशिप की तालिका में टीमों की सूची निकालने का प्रयास करते हुए, सही टैग और वर्ग की खोज करते हुए, मुझे कोई रिटर्निंग डेटा नहीं मिला। मैंने बीएस4 वेबसाइट पर आधिकारिक दस्तावेज पढ़ने की कोशिश की है लेकिन फिर भी मैं इस समस्या को हल करने में असमर्थ हूं। अगर कोई मेरी मदद कर सकता है तो मैं आभारी रहूंगा। नीचे स्क्रीनशॉट और कोड का उपयोग किया गया है।

पेज: https://i.stack.imgur.com/9YTJf.png

चयनकर्ता द्वारा एलीमेंट इंस्पेक्टर का उपयोग करना: https://i.stack.imgur.com/asMng। png

डेवलपर टूल विंडो: https://i.stack.imgur.com/fAKZJ.png

बिना डेटा वाली खोज लौटाई गई: https://i.stack.imgur.com/U2S5W.png

from bs4 import BeautifulSoup
import lxml, requests

r = requests.get('https://www.google.com/search?q=Tabela+do+Campeonato+Brasileiro+de+Futebol&oq=Tabela+do+Campeonato+Brasileiro+de+Futebol&aqs=chrome..69i57.241j0j1&sourceid=chrome&ie=UTF-8#sie=lg;/g/11fmzksb3y;2;/m/0fnk7q;st;fp;1;;')

page = r.text
soup = BeautifulSoup(page, 'lxml')

for i in soup.find_all('span', class_='ellipsisize hsKSJe'):
    print(i.text)
2
Lucas Ribeiro 19 सितंबर 2020, 00:40

1 उत्तर

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

मेरा मानना ​​​​है कि यह समस्या इसलिए है क्योंकि आप एक गतिशील पृष्ठ से डेटा प्राप्त करने के लिए सुंदर सूप का उपयोग करने का प्रयास कर रहे हैं। उसके लिए आप क्रोम ड्राइवर। मैं इसे अपने सिस्टम ड्राइव पर अपने फ़ोल्डर (bin\chromedriver.exe) में सहेजता हूं।

उदाहरण के लिए नीचे आपको पहली पांच पंक्तियां मिलती हैं (बाकी सब कुछ के लिए चयनकर्ता को समझने के लिए पर्याप्त दृढ़ता नहीं थी, क्षमा करें!)

from selenium import webdriver
import pandas as pd

URL = 'https://www.google.com/search?q=Tabela+do+Campeonato+Brasileiro+de+Futebol&oq=Tabela+do+Campeonato+Brasileiro+de+Futebol&aqs=chrome..69i57.241j0j1&sourceid=chrome&ie=UTF-8#sie=lg;/g/11fmzksb3y;2;/m/0fnk7q;st;fp;1;;'
#webdriver and get data from dynamic page
dr = webdriver.Chrome(executable_path=r'C:/bin/chromedriver.exe')
dr.get(URL)
#get table data by xpath
data = dr.find_element_by_css_selector('#rso').get_attribute('outerHTML')
dr.close()

#get data as dataframe
raw = pd.read_html(data)[0]
#organize retrieved columns
labels = raw.columns.values[1:11]
table = raw[labels]
#delete excess column
del table['Club']
table.columns = labels[:-1] #ignore the last value

#view table (can't post an image yet! new here :))
4
Sia 19 सितंबर 2020, 05:43