@@ -162,19 +162,20 @@ def _process_problem_data(self, question):
162162
163163 # Extract follow-up section if it exists
164164 follow_ups = []
165- for elem in soup .find_all (['p' , 'strong' ]):
166- if elem .name == 'strong' and 'Follow-up' in elem .text :
167- follow_up_text = elem .parent .get_text ().strip ()
168- follow_ups .append (follow_up_text )
169-
170- # Sometimes follow-ups are in paragraphs after the header
171- next_elem = elem .parent .next_sibling
172- while next_elem and next_elem .name == 'p' :
173- follow_up_text = next_elem .get_text ().strip ()
174- if follow_up_text :
175- follow_ups .append (follow_up_text )
165+ for p in soup .find_all ('p' ):
166+ strong = p .find ('strong' )
167+ if strong and 'Follow up' in strong .get_text ():
168+ # Get the text after <strong> in the same <p>
169+ follow_up_text = p .get_text ().replace (strong .get_text (), '' ).strip ()
170+ if follow_up_text :
171+ follow_ups .append (follow_up_text )
172+ # Also check next <p> tags for additional follow-up info
173+ next_elem = p .next_sibling
174+ while next_elem and getattr (next_elem , 'name' , None ) == 'p' :
175+ extra_text = next_elem .get_text ().strip ()
176+ if extra_text :
177+ follow_ups .append (extra_text )
176178 next_elem = next_elem .next_sibling
177-
178179 problem_data ['follow_ups' ] = follow_ups
179180
180181 # Extract hints from the API response
@@ -241,7 +242,7 @@ def scrape_problem_list(self, limit=10):
241242
242243if __name__ == "__main__" :
243244 scraper = LeetCodeScraper ()
244- problem_data = scraper .scrape_problem ("linked-list-cycle " )
245+ problem_data = scraper .scrape_problem ("longest-strictly-increasing-or-strictly-decreasing-subarray " )
245246 print (json .dumps (problem_data , indent = 2 ))
246247 # Option 2: Scrape multiple problems from the list
247248 # problem_list = scraper.scrape_problem_list(limit=5)
0 commit comments