sto usando Splash 2.0.2 + Scrapy 1.0.5 + Scrapyjs 0.1.1
e non riesco ancora a visualizzare javascript con un clic. Ecco un esempio url https://olx.pt/anuncio/loja-nova-com-250m2-garagem-em-box-fechada-para-arrumos-IDyTzAT.html#c49d3d94cfScrapy + Splash + ScrapyJS
ancora sto ottenendo la pagina senza il numero di telefono reso:
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()
come posso ottenere questo lavoro?
realtà ho bisogno di questo per lavorare perché mi trasferirò a più complessi siti js con calendari data picker e roba – psychok7
@ psychok7 si è sicuri scrapyjs sarebbe sufficiente per il tuo complesso sito web dinamico? Forse passare a 'selenium' renderebbe le cose andare più veloci e più semplici .. – alecxe
Lo sto provando .. Non ho idea se sia possibile o meno .. Ma guarderò anche il selenio grazie – psychok7