网络抓取 - 从地图图标中提取信息

时间:2018-03-05 01:52:11

标签: javascript python selenium web-scraping

我是网络抓取新手。我想刮掉以下网站。

http://maps.3dhubs.com/

这是一张全球地图,其中包含> 7000家供应商的列表。我想得到所有供应商的名字。放大特定区域时,您将看到红色图标。单击红色图标会弹出一个弹出窗口,其中包含供应商的名称。

我使用以下代码:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:/application-component-context.xml")
public class ServiceUnitTest {

    @Autowired
    MyService myService;

    @BeforeClass
    public static void init() throws Exception {
        TestJNDIDB.create();
    }

    @Before
    public  void setUp() {
        MockitoAnnotations.initMocks(this);
    }

    @Test
    public void testProcessRegistration() throws Exception {    
        SomeObject object = myService.ProcessSomeObject;
    }

}
//this is real class and works while application run
@Component
MyService(){
    @Autowired
    BCryptPasswordEncoder bCryptPasswordEncoder;
}

代码给出一个空列表作为输出。我需要的信息是div标签和leaflet-popup-pane类,但这些信息仅在单击图标后显示。

如果可以使用硒来完成,请告诉我如何操作。特别是,单击图标时会生成数据(供应商名称)。我知道如何使用selenium点击文本链接,但这里是一个图标,而不是文本。

image

1 个答案:

答案 0 :(得分:0)

我认为这个json文件(http://s3-eu-west-1.amazonaws.com/3dhubs/s3fs-public/hubsformap.json)就是你想要的。我在网站的源代码中找到它。

var xhr = new XMLHttpRequest();
    L.mapbox.accessToken = 'pk.eyJ1IjoiM2RodWJzbWFwcyIsImEiOiJBSzBFalRzIn0.j8icvSftfyZ4yxJmEgbrRw';
xhr.open('GET', encodeURI('//s3-eu-west-1.amazonaws.com/3dhubs/s3fs-public/hubsformap.json'));