tôi đang sử dụng Splash 2.0.2 + Scrapy 1.0.5 + Scrapyjs 0.1.1
và im vẫn không thể hiển thị javascript bằng một lần nhấp. Dưới đây là một ví dụ url https://olx.pt/anuncio/loja-nova-com-250m2-garagem-em-box-fechada-para-arrumos-IDyTzAT.html#c49d3d94cfScrapy + Splash + ScrapyJS
tôi vẫn nhận được những trang mà không có số điện thoại hiển thị:
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()
làm thế nào tôi có thể có được điều này để làm việc?
Tôi thực sự cần làm việc này bởi vì tôi sẽ được di chuyển đến các trang web js phức tạp hơn với lịch bảng chọn ngày và các công cụ – psychok7
@ psychok7 bạn có chắc scrapyjs sẽ đủ cho trang web động phức tạp của bạn? Có lẽ việc chuyển sang 'selenium' sẽ khiến mọi thứ trở nên nhanh hơn và đơn giản hơn .. – alecxe
Tôi đang thử nó .. Tôi không biết liệu nó có khả thi hay không .. Nhưng tôi sẽ xem xét selenium cũng nhờ – psychok7