【发布时间】:2018-03-09 21:35:18
【问题描述】:
我正在尝试单击一个按钮,以在网站上加载更多数据。 我之前和之后放了一个time.sleep代码部分当然要等一点时间,但还是不行。
此按钮的 html 代码如下所示:
<button data-mode="arrivals" data-page="-1" data-timestamp="1506584673.386" ng-click="loadMoreFlights($event)" data-current-page="1" data-loading-text="<i class="fa fa-circle-o-notch fa-spin"></i> Loading earlier flights..." class="btn btn-table-action btn-flights-load">Load earlier flights</button>
我试过这个:
def scrape(urls):
browser = webdriver.Firefox()
datatable=[]
for url in urls:
browser.get(url)
time.sleep(5)
driver.find_element_by_xpath("//a[contains(.,'Load earlier flights')]")
time.sleep(5)
html = browser.page_source
soup=BeautifulSoup(html,"html.parser")
table = soup.find('table', { "class" : "table table-condensed table-hover data-table m-n-t-15" })
soup2=BeautifulSoup(html,"html.parser")
name = soup2.h2.string
soup3=BeautifulSoup(html,"html.parser")
name2 = soup3.h1.string
soup4=BeautifulSoup(html,"html.parser")
name3 = soup4.h3.string
name4 = datetime.now()
for record in table.find_all('tr', class_="hidden-xs hidden-sm ng-scope"):
temp_data = []
temp_data.append(name4)
temp_data.append(name)
temp_data.append(name2)
temp_data.append(name3)
for data in record.find_all("td"):
temp_data.append(data.text.encode('latin-1'))
newlist = filter(None, temp_data)
datatable.append(newlist)
time.sleep(10)
browser.close()
return datatable
为什么它不起作用?
编辑:
Selenium 版本是:3.5.0
火狐版本为:52.3.0
【问题讨论】:
-
你遇到了什么异常
-
这就是为什么我现在很沮丧,因为我没有收到任何错误,程序正在运行,但是这个点击事件不起作用
-
请分享您要点击的网址和元素
-
网址:flightradar24.com/data/airports/grz/arrivals;我要点击的元素/按钮:“加载早期航班”
-
@Mr.D 我在您的代码中没有看到任何点击。你忘记了吗?
标签: python selenium selenium-webdriver web-scraping