python - सुंदर सूप बस एक मेज के हेडर निकालते हैं



python-3.x beautifulsoup (1)

यह पृष्ठ के टूटी हुई HTML के कारण है। आपको html5lib तरह एक अधिक उदार पार्सर पर स्विच करना html5lib । यहां मेरे लिए क्या काम है:

from pprint import pprint

import requests
from bs4 import BeautifulSoup

url = "http://www.askapatient.com/viewrating.asp?drug=19839&name=ZOLOFT"
response = requests.get(url, headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36'})

# HTML parsing part
soup = BeautifulSoup(response.content, "html5lib")
table = soup.find("table", attrs={"class":"ratingsTable"})
comments = [[td.get_text() for td in row.find_all("td")] 
            for row in table.find_all("tr")]
pprint(comments)

मैं Python 3.5 में सुंदर सूप का उपयोग कर निम्न वेबसाइट में तालिका से जानकारी निकालना चाहता हूं।

http://www.askapatient.com/viewrating.asp?drug=19839&name=ZOLOFT

मुझे पहले वेब-पेज को सहेजना होगा, क्योंकि मेरे प्रोग्राम को ऑफ़-लाइन काम करने की जरूरत है

मैंने अपने कंप्यूटर में वेब-पेज को सहेजा और मैंने टेबल की जानकारी निकालने के लिए निम्नलिखित कोड का इस्तेमाल किया। लेकिन समस्या यह है कि कोड सिर्फ तालिका के शीर्षक को निकालता है।

यह मेरा कोड है:

from urllib.request import Request, urlopen
from bs4 import BeautifulSoup
url = "file:///Users/MD/Desktop/ZoloftPage01.html"


home_page= urlopen(url)
soup = BeautifulSoup(home_page, "html.parser")
table = soup.find("table", attrs={"class":"ratingsTable" } )
comments = [td.get_text() for td in table.findAll("td")]
print(comments)

और यह कोड का आउटपुट है:

['RATING', '\xa0 REASON', 'SIDE EFFECTS FOR ZOLOFT', 'COMMENTS', 'SEX', 'AGE', 'DURATION/DOSAGE', 'DATE ADDED ', '\xa0’]

मुझे तालिका की पंक्तियों में सभी जानकारी की आवश्यकता है आपकी सहायताके लिए धन्यवाद !