scrapy Probleme mit JavaScript

Django, Flask, Bottle, WSGI, CGI…
Antworten
ManfredNW
User
Beiträge: 2
Registriert: Sonntag 22. Dezember 2024, 20:28

Hallo mal an alle
ich bin neu hier

Meine Frage ist, warum findet man beim auslesen des HTML mit scrapy nicht alle "span" Elemente?

Ich möchte von dîeser Webside: https://www.six-group.com/de/market-dat ... HF4.html#/
den Name der Aktie, die ISIN Nummer und das ürzel vom Symbol

Folgendes wird gefunden:
name = response.xpath('//h1/text()').get()

jedoch name1 = response.xpath('//span/text()').getall() findet nicht alle "span"

Hier noch der mein ganzer Code:

import logging
from scrapy.crawler import CrawlerRunner
from scrapy.utils.log import configure_logging
from scrapy.utils.project import get_project_settings
import scrapy
from scrapy.spiders import CrawlSpider, Rule
from twisted.internet import reactor


logger = logging.getLogger(__name__)

class MySpider2(CrawlSpider):
def __init__(self):
self.level = logging.WARNING
self.modules = ['scrapy.utils.log', 'scrapy.middleware',
'scrapy.extensions.logstats', 'scrapy.statscollectors',
'scrapy.core.engine', 'scrapy.core.scraper',
'scrapy.crawler', 'scrapy.extensions','scrapy.addons',
__name__]
for module in self.modules:
logger = logging.getLogger(module)
logger.setLevel(self.level)



def start_requests(self):

url="https://www.six-group.com/de/market-dat ... HF4.html#/"

yield scrapy.Request(url=url, callback=self.parse)


def parse(self, response):
name = response.xpath('//h1/text()').get()
print(name)

name1 = response.xpath('//span/text()').getall()
for i in name1:
if 'ISIN' in i:
print(i.text())
if 'Symbol' in i:
print(i.text())
print('fertig')




configure_logging()
settings = get_project_settings()
runner = CrawlerRunner(settings)
runner.crawl(MySpider2)
d = runner.join()


d.addBoth(lambda _: reactor.stop())

reactor.run() # the script will block here until all crawling jobs are finished


print('Scrapy fertig')


Wäre ech toll wenn mir wer helfen könnte
lg Manfred
Benutzeravatar
sparrow
User
Beiträge: 4501
Registriert: Freitag 17. April 2009, 10:28

Wie ist denn das JavaScript in deinen Beitragstitel gerutscht? Weil du gemerkt hast, dass da Inhalte dynamisch via JavaScript nachgeladen werden?
Falls ja, die Dokumentation weiß etwas.
ManfredNW
User
Beiträge: 2
Registriert: Sonntag 22. Dezember 2024, 20:28

Danke für die rasche Antwort

Die Dokumentation hab ich gelesen, jedoch das was beschrieben ist mit den Selektoren erzeug bei mir immer einen Error oder not Found.
Benutzeravatar
sparrow
User
Beiträge: 4501
Registriert: Freitag 17. April 2009, 10:28

Die von mir verlinkte Dokumentation hast du gelesen?
Was genau steht da zu Selektoren?

Wie du bereits herausgefunden hast, ist die von dir gewünschte Information über den Link nicht verfügbar. Sie ist schlicht in dem Content, der zurück kommt, nicht enthalten. Du wirst also mit Scrapy nichts finden.

In der von mir verlinkten Dokumentation stehen die entsprechenden Infos.
Antworten