scrapy Probleme mit JavaScript
Verfasst: Sonntag 22. Dezember 2024, 20:49
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
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