[ 爬虫入门问题 ] --如何爬取 ztree 树上节点,异步全部展开导出

2018-12-06 20:18:59 +08:00
 dibis

http://www.treejs.cn/v3/demo/cn/core/simpleData.html

目前只能理出简单爬已经展开的节点。模拟点击一层层加载怎么实现?

''''

def get_html_src(url):
driver = webdriver.Chrome("/Users/qk/Downloads/chromedriver")
driver.get(url)
parentElement = driver.find_element_by_id('treeDemo')
elementList = parentElement.find_elements_by_tag_name("li")

with open("tmp/ztree.csv", "a") as csvfile:               
    writer = csv.writer(csvfile)

    for e in elementList:
        writer.writerow([e.text])
        e.find_elements_by_tag_name
        print('',)

        print('节点名称:', e.text)

csvfile.close()
time.sleep(10)

driver.close()

if __name__ == "__main__":

get_html_src('http://www.treejs.cn/v3/demo/cn/core/simpleData.html')

''''

1966 次点击
所在节点    Python
2 条回复
dibis
2018-12-06 22:26:02 +08:00
修改好了

with open("tmp/ztree.csv", "a") as csvfile:
writer = csv.writer(csvfile)
for num,e in enumerate(elementList,start=1):
writer.writerow([e.text])
try:
print(num)
print(e.get_attribute('innerHTML'))
e.find_element_by_class_name('center_close').click()
time.sleep(2)
#print(eparent)
#eparent.click()
except WebDriverException:
print("Element is not clickable")


print(e.text)
dibis
2018-12-06 22:26:39 +08:00
下面要改成递归方法和叫错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/515117

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX