1010
1111def get_entries ():
1212 r1 = requests .get ("https://passkeys.2stable.com/services/" )
13- s1 = BeautifulSoup (r1 .text , "html.parser " )
13+ s1 = BeautifulSoup (r1 .text , "lxml " )
1414
1515 entries = []
1616 for e in s1 .select ("div#services-supporting-passkeys table tbody tr" ):
1717 try :
1818 id = e .select_one ("th" ).get_text (strip = True )
19- name = e .select_one ("td h6 " ).get_text (strip = True )
20- domain = e .select_one ("td p.fw-normal " ).get_text (strip = True )
21- details = f"https://passkeys.2stable.com{ e .select_one ('td > a' )['href' ]} "
19+ name = e .select_one ("td div.text-dark " ).get_text (strip = True )
20+ domain = e .select_one ("td div.small.text-secondary " ).get_text (strip = True )
21+ details = f"https://passkeys.2stable.com{ e .select ('td a' )[ - 1 ] ['href' ]} "
2222
2323 logger .debug (f"Fetch details from: { details } " )
2424 r2 = requests .get (details )
25- s2 = BeautifulSoup (r2 .text , "html.parser " )
26- containers = s2 .select ("body > div > div:nth-child(2) > div > div:nth-child(4) > div > div .list-group > div " )
25+ s2 = BeautifulSoup (r2 .text , "lxml " )
26+ containers = s2 .select (".list-group .list-group-item " )
2727
2828 # service
2929 # name = containers[0].select_one("p").get_text(strip=True)
@@ -33,15 +33,21 @@ def get_entries():
3333 # domain = (a := containers[1].select_one("a#service")) and a.get_text(strip=True)
3434
3535 # setup
36- setup = ((a := containers [2 ].select_one ("a#set-up" )) and a ["href" ]) or ((p := containers [2 ].select_one ("p" )) and p .get_text ())
36+ setup = (
37+ (a := containers [2 ].select_one ("a" )) and a ["href" ]
38+ ) or (
39+ (p := containers [2 ].select_one ("p" )) and p .get_text (strip = True )
40+ )
3741
3842 # howto
39- howto = containers [3 ].select_one ("div" ).get_text ()
40- howto_links = [a ["href" ] for a in containers [3 ].select_one ("div" ).select ("a" )]
43+ howto_div = containers [3 ]
44+ howto = howto_div .get_text (separator = " " , strip = True )
45+ howto_links = [a ["href" ] for a in howto_div .select ("a" )]
4146
4247 # recover
43- recover = containers [4 ].select_one ("div" ).get_text ()
44- recover_links = [a ["href" ] for a in containers [4 ].select_one ("div" ).select ("a" )]
48+ recover_div = containers [4 ]
49+ recover = recover_div .get_text (separator = " " , strip = True )
50+ recover_links = [a ["href" ] for a in recover_div .select ("a" )]
4551
4652 entries .append ({
4753 "id" : id , "name" : name , "domain" : domain , "details" : details ,
0 commit comments