Om het gebruiksgemak te vergroten, de website te kunnen analyseren en om advertenties te kunnen beheren maakt Security.NL gebruik van cookies. Door gebruik te blijven maken van deze website, of door op de akkoord button te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer weten over cookies? Bekijk dan ons cookieoverzicht.
Nieuws Achtergrond Community
Inloggen | Registreren
Security Professionals - ipfw add deny all from eindgebruikers to any

Finding Children Nodes met behulp van BSoup

Reageer met quote
17-09-2020, 23:54 door planetenpiet, 4 reacties
De taak van web scraping is begrijpen hoe de structuur van het web werkt. Welke tools zijn er nog meer voorhanden dan Beautiful Soup? Hieronder een fragment van hoe het werkt, maar iemand een idee welke tools voorhanden zijn die beter zijn in de opsporing van content? (in dit geval is het webscraping voor een security project)



pip install BeautifulSoup4

from bs4 import BeautifulSoup as bso
our_soup = bso(sample_content, "lxml")


findChild():

The findChild method is used to find the first child node of HTML elements. For example when we take a look at our “ol” or “ul” tags, we would find two children tags in it. However when we use the findChild method, it only returns the first node as the child node.


Voorbeeld van pagina:

first_child = our_soup.find("body").find("ol")
print(first_child.findChild())



<li>Number One</li>

En dan kun je verder:


'Number One'
findChildren():

Via first_child = our_soup.find("body").find("ol"); print(first_child.findChildren())

In principe tot dat je je alles bij elkaar hebt. Vraag is nu, welke tools zijn beter in het organiseren van data voor eenzelfde doeleind?


Bron: https://linuxhint.com/find_children_nodes_beautiful_soup/
Ineens veel meer TOR exits
Geo locatie van IP
Reacties (4)
Reageer met quote
18-09-2020, 10:31 door Anoniem
Volgens mij zou je dit bijvoorbeeld ook direct kunnen doen met LXML. En dan kan je
direct xpath gebruiken ipv "find". Dat maakt het zoeken van child-nodes etc een stuk
overzichtelijk, hier wordt het eea goed uitgezet:

https://docs.python-guide.org/scenarios/scrape/
Reageer met quote
18-09-2020, 17:02 door Anoniem
Sla html.parser uit de standaard library van Python niet over. Die is heel basaal maar mogelijk geschikt voor wat je doet.

Je maakt een subclass aan van html.parser.HTMLParser, en definieert methods voor het afhandelen van start- en eindtags (waarbij een xml-stijl <tag/> als start+eindtag wordt afgehandeld, tenzij je een override van nog een method doet) en voor data. Omdat de HTML sequentieel wordt afgehandeld: starttag->childtags->endtag, is de structuur uit de aanroepvolgorde te halen. Je kan bijvoorbeeld een lijst bijhouden en in elke aanroep van handle_starttag() daar een element aan toevoegen, en het bij de aanroep van handle_endtag() het weer uit de lijst verwijderen. Zo'n element kan naast de naam van de tag en attributen (die worden in de aanroep doorgegeven) een lijst met rechtstreekse children bevatten, die je in handle_starttag() toevoegt aan het element dat de parent vertegenwoordigt, om het eindresultaat in handle_endtag() te verwerken. Of wat je maar nodig hebt.

Het kan een nadeel zijn dat je low-level alles zelf moet opbouwen, terwijl bijvoorbeeld BeautifulSoup dat allemaal voor je doet, maar het kan ook een voordeel zijn omdat je maatwerk opbouwt voor wat jouw toepassing nodig heeft, zeker als dat niet een volledige weergave van de HTML moet zijn maar slechts een uittreksel eruit. Dan kan een volledige weergave van de HTML veel ruis bevatten, en sluiten de objecten voor HTML-elementen zoals BeautifulSoup die produceert wellicht helemaal niet aan bij wat jij nodig hebt. Het hangt dus helemaal af van wat je toepassing eigenlijk precies moet doen. En wat ik in de vorige alinea beschreef is niet moeilijk, probeer het gewoon eens om er gevoel voor te krijgen.

Er bestaat een heel algemene neiging om te denken dat rijke, alomvattende libraries en tools meer te bieden hebben dan heel basale, waarvan maar al te vaak gedacht wordt dat die moeilijk zijn, want low-level. Ik heb vaker dan me lief is ondervonden dat die rijke, alomvattende tools helemaal niet zo geschikt bleken te zijn voor het doel waarvoor ze werden ingezet en juist een blok aan het been gingen vormen omdat je als ontwikkelaar voortdurend om aannames heen zat te werken die zo'n tool deed maar die voor jouw toepassing niet opgingen. Dan kunnen juist de basale tegenhangers veel flexibeler en praktischer blijken te zijn. Dat geldt zeker niet voor alle geavanceerde libraries en voor alle toepassingen, dus kan ik onmogelijk weten hoe dat voor jouw toepassing uitpakt, daar zal je zelf achter moeten komen.

Sluit het niet bij voorbaat uit, wil ik maar zeggen, het zou kunnen blijken dat je juist met een basale tool als html.parser op een verrassend eenvoudige manier precies de gegevens kan verzamelen die je nodig hebt in een vorm waar je wat mee kan.
Reageer met quote
18-09-2020, 21:14 door Anoniem
Wat betere voorbeelden graag?

P. S. Wat is plausible deniability? Learn to code.
Reageer met quote
19-09-2020, 20:00 door Anoniem
Hi, eindopdrachtje? Je kan werken met beautiful soup (static html), selenium(traag maar complete browser simulatie (kan met extra tools ook javascript rendered pages scrapen), ook kan je naar andere opties kijken buiten <href> scraping om. Denk bvb aan xml scraping em aprsing van robots.txt etc etc. Ik heb een tool gemaakt "weebpage.py" die dit wel een beetje "ok" doet: https://www.google.com/url?q=https://github.com/Slowpoke079/weebpage&sa=U&ved=2ahUKEwichLqK5vXrAhVGNOwKHVQLDkIQFjABegQICRAB&usg=AOvVaw25vtegLRv0nyQGZHZvQms6 De tool is vrij simpel geschreven en 100% python3
Reageren
Ondersteunde bbcodes
Bold: [b]bold text[/b]
Italic: [i]italic text[/i]
Underline: [u]underlined text[/u]
Quote: [quote]quoted text[/quote]
URL: [url]https://www.security.nl[/url]
Config: [config]config text[/config]
Code: [code]code text[/code]

Je bent niet ingelogd en reageert "Anoniem". Dit betekent dat Security.NL geen accountgegevens (e-mailadres en alias) opslaat voor deze reactie. Je reactie wordt niet direct geplaatst maar eerst gemodereerd. Als je nog geen account hebt kun je hier direct een account aanmaken. Wanneer je Anoniem reageert moet je altijd een captchacode opgeven.

Je reactie is verstuurd en wordt zo spoedig mogelijk gemodereerd.

Verder
captcha
Nieuwe code
Preview Reageren
Zoeken
search

Werk jij nog thuis?

17 reacties
Aantal stemmen: 1200
Vacature
Image

Security Officer

36 - 40 uur

Als Security Officer zorg je dat het infrastructuur platform, de -broncode en de VECOZO werkplek van VECOZO zo min mogelijk kwetsbaarheden kennen. Dit doe je door kwetsbaarheden inzichtelijk te maken en op te lossen. Zo speel jij een cruciale rol in de beveiliging van al onze gegevens en bedrijfsmiddelen.

Lees meer
Mag mijn werkgever vragen of ik Corona heb (gehad) of gevaccineerd ben?
13-01-2021 door Arnoud Engelfriet

Juridische vraag: Als mijn werkgever van mij verlangt om aan te geven of ik Corona heb, dan wel mij heb laten testen of mij ...

16 reacties
Lees meer
Advertentie

Image

Certified Secure LIVE Online

Certified Secure is LIVE. Cross Site Scripting vinden en voorkomen? Met z'n allen een volledige kubernetes cluster compromitteren? Of gewoon voorkomen dat een collega op een phishing mail klikt? Ontwikkel ook terwijl je thuiswerkt je Hacker Mindset!

Zoals altijd zijn ook onze LIVE trainingen hands-on en met persoonlijke begeleiding van ervaren Certified Secure instructeurs. Direct vanuit je browser en dus zonder nasty extra software!

Neem contact met ons op voor de mogelijkheden voor jouw team.

Lees meer
SolarWinds: overzicht van een wereldwijde supply-chain-aanval
21-12-2020 door Redactie

Het risico van een supply-chain-aanval, waarbij aanvallers via software of systemen van een derde partij bij organisaties weten ...

15 reacties
Lees meer
Security.NL Twitter
04-11-2016 door Redactie

Altijd meteen op de hoogte van het laatste security nieuws? Volg ons nu ook op Twitter!

Lees meer
Nieuwe Huisregels en Privacy Policy

Op 5 december 2017 hebben we een nieuwe versie van onze huisregels en privacy policy ingevoerd. Om verder te kunnen gaan dien je eenmalig akkoord te gaan met de nieuwe huisregels van Security.NL.

Op 24 mei 2018 hebben we, in het kader van de AVG, onze privacy policy bijgewerkt. Om verder te kunnen gaan dien je eenmalig akkoord te gaan met de bijgewerkte privacy policy. Heb je vragen neem dan contact op met info@security.nl.

Verzenden
Privacy Policy

Op 24 mei 2018 hebben we, in het kader van de AVG, onze privacy policy bijgewerkt. Om verder te kunnen gaan dien je eenmalig akkoord te gaan met de bijgewerkte privacy policy. Heb je vragen neem dan contact op met info@security.nl.

Verzenden
Inloggen

Bedankt! Je kunt nu inloggen op je account.

Wachtwoord vergeten?
Nieuwe code captcha
Inloggen

Wachtwoord Vergeten

Wanneer je hieronder het e-mailadres van je account opgeeft wordt er een nieuwe activatielink naar je gestuurd. Deze link kun je gebruiken om een nieuw wachtwoord in te stellen.

Nieuwe code captcha
Stuur link

Password Reset

Wanneer je het juiste e-mailadres hebt opgegeven ontvang je automatisch een nieuwe activatielink. Deze link kan je gebruiken om een nieuw wachtwoord in te stellen.

Sluiten
Registreren bij Security.NL

Geef je e-mailadres op en kies een alias van maximaal 30 karakters.

Nieuwe code captcha
Verzenden

Registreren

Je hebt je succesvol aangemeld. Voordat je je account kunt gebruiken moet deze eerst geactiveerd worden. Dit kan je zelf doen middels de activatielink die naar het opgegeven e-mailadres is verstuurd.

Sluiten
Over Security.NL
Huisregels
Privacy Policy
Adverteren
© 2001-2020 Security.nl - The Security Council
RSS Twitter