Ich bin so ziemlich neu, und ich konnte nichts auf Google auf dieser Frage zu finden.Web Scraping mit Python Anfrage/lxml: Daten von ul/li
Ich verwende Anfrage und lxml mit Python, habe ich gesehen, dass viele verschiedene Module für Web-Scraping da ist, aber gibt es einen Grund, warum man über wählen das andere? Kannst du das gleiche mit Anfragen/lxml machen, wie zum Beispiel mit BeautifulSoup?
Wie auch immer, hier ist meine tatsächliche Frage;
Dies ist mein Code:
import requests
from lxml import html
# Login data
inputUrl = 'http://forum.mytestsite.com/login'
usr = 'myusername'
pwd = 'mypassword'
payload = dict(login=usr, password=pwd)
# Open session
with requests.Session() as s:
# Login
s.post(inputUrl, data=payload)
# Get page data
pageResult = s.get('http://forum.mytestsite.com/icons/', allow_redirects=False)
pageResult = html.fromstring(pageResult.content)
pageIcons = pageResult.xpath('//script[@id="table-icons"]/text()')
print pageIcons[0]
Das Ergebnis, wenn pageIcons Druck [0]:
<ul id="icons">
{{#each icons}}
<li data-handle="{{handle}}">
<img src="{{image_path}}" alt="{{desc_or_name this}}" title="{{desc_or_name this}}">
</li>
{{/each}}
</ul>
Dies ist die Website/js-Code, der erzeugt Symbole:
<script id="table-icons" type="text/x-handlebars-template">
<ul id="icons">
{{#each icons}}
<li data-handle="{{handle}}">
<img src="{{image_path}}" alt="{{desc_or_name this}}" title="{{desc_or_name this}}">
</li>
{{/each}}
</ul>
</script>
Und hier ist das Ergebnis auf der Seite:
<ul id="icons">
<li data-handle="558FSTBI" class="">
<img src="http://testsite.com/icons/558FSTBI.1.png" alt="Icon 1" title="Icon 1">
</li>
<li data-handle="310AYTZI">
<img src="http://testsite.com/icons/310AYTZI.1.png" alt="Icon 2" title="Icon 2">
</li>
<li data-handle="669PQXBI" class="">
<img src="http://testsite.com/icons/669PQXBI.1.png" alt="Icon 3" title="Icon 3">
</li>
</ul>
Mein Ziel:
Was würde ich zu tun ist, um alle abrufen li Daten -Handles, aber ich konnte nicht herausfinden, wie diese Daten abgerufen werden. Mein Ziel ist es, alle Symbolpfade und ihre Titel zu finden, könnte mir hier jemand helfen? Ich würde wirklich jede Hilfe zu schätzen :)
'// script' ist nicht Teil des HTML gerendert.Warum versuchen Sie, den Vorlagencode zu analysieren? –
Nun, weil ich ein Noob bin: P Ich habe gelernt, weil das Skript gibt mir die ul/li Griffe von dem, was ich eigentlich will, dass es logisch war, es so zu machen. Ich meine, das gerenderte HTML wird aus dem Skript generiert, richtig? Wie kann ich sonst die Links bekommen? – Lorena
Sie können den Vorlagencode nicht von Python-Anfragen abrufen. Plus, wenn es nach dem Laden der Seite gerendert wird, erhalten Sie eine leere Liste und Sie können die Anfragen sowieso nicht verwenden. https://stackoverflow.com/questions/13960567/reading-dynamisch-generated-web-pages-using-python –