【发布时间】:2021-05-11 15:31:52
【问题描述】:
当您在字典搜索框中引入一些首字母缩写词时,我正在尝试抓取 javascript 函数生成的结果。这是我正在使用的代码:
import scrapy
from scrapy_splash import SplashFormRequest
class SedomSpider(scrapy.Spider):
name = 'sedom-spider'
url_s = 'https://www.sedom.es/diccionario/'
formdata = {'sigla': 'AA'}
def parse(self, response):
return SplashFormRequest(
url=self.url_s,
formdata=self.formdata,
callback=self.after_login
)
def after_login(self, response):
print(response.body)
我获得了html body,但是我应该看到的生成结果(<span id="resultado">...</span>)不在里面……
我也试过了:
import scrapy
from scrapy_splash import SplashRequest, SplashFormRequest
class SedomSpider(scrapy.Spider):
name = 'sedom-spider'
url_s = 'https://www.sedom.es/diccionario/'
formdata = {'sigla': 'AA'}
def start_requests(self):
yield SplashRequest(
url=self.url_s,
callback=self.parse
)
def parse(self, response):
yield SplashFormRequest.from_response(
response,
formdata=self.formdata,
callback=self.after_login
)
def after_login(self, response):
print(response.body)
然后我得到这个错误:
ValueError:请求 url 中缺少方案:javascript:procesar()
我知道scrapy-splash 配置得很好,因为我这样做了tutorial 并且工作正常。我可能对使用这个库有一个误解,因为我已经尝试了我找到的所有解决方案,但我无法让它工作......
【问题讨论】:
标签: python web-scraping scrapy scrapy-splash