菜鸟练习,高手绕道,先上代码:
from docx import Document
from selenium import webdriver
from time import sleep
links = []
def selenium_api_crawl():
"""
爬取selenium3.141 API,生成word文档。
:return:
"""
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.selenium.dev/selenium/docs/api/py/py-modindex.html')
sleep(3)
# 获取二级页面的所有链接元素
element_links = driver.find_elements_by_xpath('//td/a')
document = Document()
document.add_heading('selenium3.141 API', level=0)
# 从元素属性中获取二级页面链接,但不在遍历中打开,可能会导致后面链接获取失败。
for element_link in element_links:
link = element_link.get_attribute('href')
links.append(link)
n = 1
# 遍历每个链接,获取页面文本,并保存到Word文档中。
for link in links:
driver.get(link)
sleep(3)
link_text = driver.find_element_by_xpath('//div[@role="main"]').text
t = link_text.find('\n')
link_text_title = link_text[0:t]
document.add_heading(str(n) + '、' + link_text_title, level=1)
n += 1
link_text_content = link_text[t:]
document.add_paragraph(link_text_content+'\n')
document.save('selenium3.141API.docx')
if __name__ == '__main__':
selenium_api_crawl()
生成Word文档:(如果能够直接附件文档就好了)
注意事项:
1、pycharm安装python-docx,python-docx为模块,docx为旧模块。安装失败时先升级pip
2、python-docx更多参考官方文档:https://python-docx.readthedocs.io/en/latest/
3、seleniumAPI链接:https://www.selenium.dev/selenium/docs/api/py/py-modindex.html,可用谷歌翻译直接查看。