Ich benutze Splash 2.0.2 + Scrapy 1.0.5 + Scrapyjs 0.1.1
und bin immer noch nicht in der Lage, Javascript mit einem Klick zu rendern. Hier ist ein Beispiel url https://olx.pt/anuncio/loja-nova-com-250m2-garagem-em-box-fechada-para-arrumos-IDyTzAT.html#c49d3d94cfScrapy + Splash + ScrapyJS
ich noch immer die Seite, ohne die Telefonnummer wiedergegeben:
class OlxSpider(scrapy.Spider):
name = "olx"
rotate_user_agent = True
allowed_domains = ["olx.pt"]
start_urls = [
"https://olx.pt/imoveis/"
]
def parse(self, response):
script = """
function main(splash)
splash:go(splash.args.url)
splash:runjs('document.getElementById("contact_methods").getElementsByTagName("span")[1].click();')
splash:wait(0.5)
return splash:html()
end
"""
for href in response.css('.link.linkWithHash.detailsLink::attr(href)'):
url = response.urljoin(href.extract())
yield scrapy.Request(url, callback=self.parse_house_contents, meta={
'splash': {
'args': {'lua_source': script},
'endpoint': 'execute',
}
})
for next_page in response.css('.pager .br3.brc8::attr(href)'):
url = response.urljoin(next_page.extract())
yield scrapy.Request(url, self.parse)
def parse_house_contents(self, response):
import ipdb;ipdb.set_trace()
wie kann ich dies funktioniert?
Ich brauche dies tatsächlich zu arbeiten, weil ich – psychok7
mit Datumsauswahl Kalender und Sachen zu komplexeren js Seiten werden sich bewegen @ psychok7 sind Sie sicher, scrapyjs würde ausreichen, um für Ihre komplexe dynamische Website? Vielleicht würde der Wechsel zu "Selen" die Dinge schneller und einfacher werden lassen. – alecxe
Ich probiere es aus ... Ich habe keine Ahnung, ob es möglich ist oder nicht ... Aber ich werde auch in Selen schauen, danke – psychok7