我选择了Selenium,因为链接'hrefs是动态生成的,虽然通过bs4的某些方法是首选。
我使用的是PhantomJS,但也尝试过Firefox
尝试点击链接时,没有任何反应。
例如,
render() {
if (Platform.OS === 'ios') {
//Scroll View
return this.renderIOS();
} else {
return this.renderAndroid();
}
}
renderIOS(){
<ScrollView style={{marginTop: 10}}
horizontal={true}
pagingEnabled={true}
ref={(scrollView) => { _scrollView = scrollView; }}
onScroll={this._handleScroll}
scrollEventThrottle={16}>
/*your content go here*/
</ScrollView>
}
renderAndroid() {
return (
<ViewPagerAndroid
ref="scrollview"
initialPage={this.state.initialSelectedIndex}
onPageSelected={this.handleHorizontalScroll}
style={styles.container}>
/* your pages go here */
</ViewPagerAndroid>
);
}
答案 0 :(得分:2)
正如Orenthal所说,我发现链接被点击了。但是,要加载的页面是完全动态的,因此在尝试从该链接中提取之前需要至少休眠2秒。
答案 1 :(得分:1)
我不太确定我知道你要点击什么,但我点击了“Agora Pavillon C7”页面上的第一个列表,其中包含以下代码。
from selenium import webdriver
def so_test():
driver = webdriver.Firefox()
def connect():
driver.get('http://www.achema.de/de/ausstellung/aussteller-und-produkte.html')
div = driver.find_element_by_id('ix_result_aussteller')
test_link = div.find_elements_by_tag_name('tr')
link = test_link[0].find_element_by_tag_name('a')
link.click()
connect()
so_test()
如果您尝试单击上面的导航链接,则正确的目标将是:
from selenium import webdriver
def so_test():
driver = webdriver.Firefox()
def connect():
driver.get('http://www.achema.de/de/ausstellung/aussteller-und-produkte.html')
div = driver.find_element_by_id('ix_letters')
test_link = div.find_elements_by_tag_name('li')
link = test_link[0].find_element_by_tag_name('a')
link.click()
connect()
so_test()
这样的事情。如果我离开基地,请告诉我。我很乐意尝试进一步帮助。