• 1
  • 2
2023-04-27, 13:26
  #1
Medlem
JSelwyns avatar
Jag hller p att testa mig fram med BeautifulSoup4 och genom webscraping.

Testsidan r Biltemas och jag vill f fram endast email som separat entity. Jag lyckas med varuhuset och telefonnumret men som sagt inte emailaddressen. Jag misstnker fr att de bda har samma class s jag mste anvnda mig av ngot slags index? Hr r lnken: https://www.biltema.se/varuhus-och-oppettider/

Som ni ser s s har tv <li>:s samma klassnamn och jag vill bara plocka ut emailadressen. Hilfe. Tack!

Frkortad version frn ovanstende lnk.
<li class="flex__inline--center flex-wrap">
<span>Telefon:</span><a href="tel:077-52000 00" title="link titel">077-520 00 00</a></li>

<li class="flex__inline--center flex--wrap">
<a href="mailto:avesta@biltema.com?Subject=Biltema Avesta" title="link titel">avesta@biltema.com</a></li>
Citera
2023-04-27, 13:46
  #2
Medlem
frdks avatar
Citat:
Ursprungligen postat av JSelwyn
Jag hller p att testa mig fram med BeautifulSoup4 och genom webscraping.

Testsidan r Biltemas och jag vill f fram endast email som separat entity. Jag lyckas med varuhuset och telefonnumret men som sagt inte emailaddressen. Jag misstnker fr att de bda har samma class s jag mste anvnda mig av ngot slags index? Hr r lnken: https://www.biltema.se/varuhus-och-oppettider/

Som ni ser s s har tv <li>:s samma klassnamn och jag vill bara plocka ut emailadressen. Hilfe. Tack!

Frkortad version frn ovanstende lnk.
<li class="flex__inline--center flex-wrap">
<span>Telefon:</span><a href="tel:077-52000 00" title="link titel">077-520 00 00</a></li>

<li class="flex__inline--center flex--wrap">
<a href="mailto:avesta@biltema.com?Subject=Biltema Avesta" title="link titel">avesta@biltema.com</a></li>

anvnd regex?
sen ska man inte hlla p och scama folk hoppas jag du vet
Citera
2023-04-27, 14:04
  #3
Medlem
JSelwyns avatar
Citat:
Ursprungligen postat av frdk
anvnd regex?
sen ska man inte hlla p och scama folk hoppas jag du vet

Tack. Bara i utbildningssyfte och ingenting annat.
Citera
2023-05-07, 20:00
  #4
Medlem
SKetchers avatar
Du behver inte regex.
Kod:
/*
Skit i <li>. Titta nivn under, a-taggarna har det vi behver
Har inte rrt soppan p hundra r men ngot snt hr dr vi matchar attribute i a-taggen och brjan  av strngen med *=
Vilket iofs r lite regexigt men skit samma
*/
soup.select('a[href*="tel"]')
soup.select('a[href*="mailto"]'
Citera
2023-05-20, 08:30
  #5
Medlem
0xgh64s avatar
Nu r jag ingen expert p BS4 men skulle anvnt Selenium dr kan du anvnda id , name, class name, link text, tags, CSS selector och XPATH.
Citera
2023-05-20, 08:34
  #6
Medlem
0xgh64s avatar
Citat:
Ursprungligen postat av SKetcher
Du behver inte regex.
Kod:
/*
Skit i <li>. Titta nivn under, a-taggarna har det vi behver
Har inte rrt soppan p hundra r men ngot snt hr dr vi matchar attribute i a-taggen och brjan  av strngen med *=
Vilket iofs r lite regexigt men skit samma
*/
soup.select('a[href*="tel"]')
soup.select('a[href*="mailto"]'
Fast r det endast emails han ska ha s regexp r ett rtt s bra alternativ.

Alternativt TS hur jag skulle gjort det r att anvnda burpsuite och installera en extension frn bapp store som passiv scannar sidan med regexp fr att hitta API keys, emails, passwords etc. Kommer nu inte ihg om extension r pro eller inte eller namnet atm nu nr nr jag r p mobilen och d jag vanligtvis endast anvnder JS miner i liknande scenarion fr min del, men detta r dock irrelevant i det hr fallet. Dm om intresserad kan jag kolla.
__________________
Senast redigerad av 0xgh64 2023-05-20 kl. 08:59.
Citera
2023-05-21, 00:55
  #7
Medlem
SKetchers avatar
Citat:
Ursprungligen postat av 0xgh64
Fast r det endast emails han ska ha s regexp r ett rtt s bra alternativ.

Alternativt TS hur jag skulle gjort det r att anvnda burpsuite och installera en extension frn bapp store som passiv scannar sidan med regexp fr att hitta API keys, emails, passwords etc. Kommer nu inte ihg om extension r pro eller inte eller namnet atm nu nr nr jag r p mobilen och d jag vanligtvis endast anvnder JS miner i liknande scenarion fr min del, men detta r dock irrelevant i det hr fallet. Dm om intresserad kan jag kolla.

Varfr skriver du inte den regex snutt som funkar om du ska klaga p mitt korrekta svar?
Citera
2023-05-21, 00:56
  #8
Medlem
SKetchers avatar
Citat:
Ursprungligen postat av 0xgh64
Nu r jag ingen expert p BS4 men skulle anvnt Selenium dr kan du anvnda id , name, class name, link text, tags, CSS selector och XPATH.

Vad tror du beutiful soup anvnder, magi?
Citera
2023-05-21, 10:02
  #9
Medlem
grejigabosses avatar
Citat:
Ursprungligen postat av SKetcher
Vad tror du beutiful soup anvnder, magi?
Instmmet. Selenium knns mest omstndigt och lngsamt nr man utvecklar. Antagligen anvnder man selenium fr att man vill kunna se det i realtid, men gosh, 80% av kodskrivandet gr ut p att titta p att webblsaren laddar.
Jag hade krt BS4 alla dagar framfr selenium.

Eller varfr inte bara ett helt vanligt request och letar fram det man sker i ren text.
Kod:
import requests
f = requests.get("https://www.biltema.se")
print(f.text)
Citera
2023-05-21, 10:19
  #10
Medlem
grejigabosses avatar
ven om man inte "behver" anvnda regex, varfr inte.
Selenium r extremt omstndigt i detta fallet.
Var s god.

Kod:
import requests
import re
f = requests.get("https://www.biltema.se/varuhus-och-oppettider/")
#print(f.text)

matching_emails = re.findall(r'\b[A-Za-z0-9._%+-]+@biltema\.com\b', f.text)

for email in matching_emails:
    print(email)
Citera
2023-05-21, 11:54
  #11
Medlem
Som Grej skriver r det vl bttre att anvnda BS4 eller dito om nu servern ger dig mailadresserna i klartext. Selenium anvnder man till websidor som har Java som r kodad s att du mste anvnda aktiva element p sidan fr att f ngot frn servern. Dvs till sidor som har blockerat att du kan hmta sidan frn requests. Selenium r enbart en emulator som emulerar Cromium s att du kan komma t innehllet p sidan.
Citera
2023-05-21, 13:39
  #12
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Methos
Som Grej skriver r det vl bttre att anvnda BS4 eller dito om nu servern ger dig mailadresserna i klartext. Selenium anvnder man till websidor som har Java som r kodad s att du mste anvnda aktiva element p sidan fr att f ngot frn servern. Dvs till sidor som har blockerat att du kan hmta sidan frn requests. Selenium r enbart en emulator som emulerar Cromium s att du kan komma t innehllet p sidan.
Jag hller med alla som hittills hvdat att r mycket bttre att undvika Selenium om man kan, t.ex. med BS4.

Vad du menar med ovanstende r vl egentligen att det r vldigt Javascript-beroende (inte Java) hemsidor, dr Selenium kan behvas. Sedan r Selenium normalt sett inte en browser-emulator, utan ett automatiseringsverktyg som ligger ovanp en redan befintlig browser. Dock r jag lite osker p headless Selenium, men jag tror inte heller det r en emulering utan att Selenium d kommunicerar med browsern-executabeln bara att den inte har ngot synligt fnster ppet.
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in