splash:mouse_click 无法打开弹出窗口 window
splash:mouse_click couldn't open pop up window
我正在尝试从 townwork(一个日本工作信息网站)抓取兼职工作信息。
要获取地址,我想打开一个弹出窗口 window。然后我开始使用Splash。
虽然我可以使用 splash:mouse_click 打开其他 link 和弹出窗口,但我无法打开所需的弹出窗口 window。
任何答案将不胜感激。
我想点击的link
想要的结果。
目标页面URL
https://townwork.net/detail/clc_2578209001/joid_Y00BKDF4/
代码
function main(splash, args)
assert(splash:go(args.url))
local map = splash:select('#jsi-inflow-target > div > dl:nth-child(3) > dd > p > span > a')
local bounds = map:bounds()
local x_dif = bounds.right - bounds.left
assert(map:mouse_click({x=bounds.width/3, y=bounds.height/3}))
splash:wait(1)
return {
html = splash:html(),
png = splash:png(),
bounds = bounds
}
end
我认为这个弹出窗口打开的速度是一个原因。
为了地址,我找到了除了打开弹窗之外的另一种解决方案:从第一页获取经纬度。
def parse(self, response):
dt_list = response.css('dt')
for dt in dt_list:
if dt.css('::text').get == "勤務地":
a_tag = BeautifulSoup(dt.xpath('./following-sibling::dd').get()).find('a')
if a_tag is None:
continue
item['lat'] = a_tag['data-lat']
item['lon'] = a_tag['data-lon']
我正在尝试从 townwork(一个日本工作信息网站)抓取兼职工作信息。 要获取地址,我想打开一个弹出窗口 window。然后我开始使用Splash。 虽然我可以使用 splash:mouse_click 打开其他 link 和弹出窗口,但我无法打开所需的弹出窗口 window。
任何答案将不胜感激。
我想点击的link
想要的结果。
目标页面URL https://townwork.net/detail/clc_2578209001/joid_Y00BKDF4/
代码
function main(splash, args)
assert(splash:go(args.url))
local map = splash:select('#jsi-inflow-target > div > dl:nth-child(3) > dd > p > span > a')
local bounds = map:bounds()
local x_dif = bounds.right - bounds.left
assert(map:mouse_click({x=bounds.width/3, y=bounds.height/3}))
splash:wait(1)
return {
html = splash:html(),
png = splash:png(),
bounds = bounds
}
end
我认为这个弹出窗口打开的速度是一个原因。
为了地址,我找到了除了打开弹窗之外的另一种解决方案:从第一页获取经纬度。
def parse(self, response):
dt_list = response.css('dt')
for dt in dt_list:
if dt.css('::text').get == "勤務地":
a_tag = BeautifulSoup(dt.xpath('./following-sibling::dd').get()).find('a')
if a_tag is None:
continue
item['lat'] = a_tag['data-lat']
item['lon'] = a_tag['data-lon']