使用selenium解析本地HTML文件方法

import requests
import time
"""
經驗總結:
1.使用selenium解析本地HTML文件方法,
browser.get("file://C:/Users/23242/Desktop/HTML/People List _ USDA ARS.html")
file://很重要不能少;
2.(.text)獲取不到時,換成.get_attribute("textContent")
3.(.replace('\n','')).replace(' ',''))替換空格和換行

4.有時候界面的彈出框,並不是一個子ifram 其實代碼就在界面上,注意觀察

"""
from selenium import webdriver
browser=webdriver.Chrome()
browser.get("file://C:/Users/Desktop/HTML/People List _ USDA ARS.html")
# print(browser.page_source)
# time.sleep(3)
#


button=browser.find_element_by_xpath('//*[@id="prefix-overlay-header"]/button')
button.click()
# 打開所有界面
# button=browser.find_element_by_id('expandAll')
# button.click()

title=browser.find_elements_by_xpath('//ul[@class="usa-accordion-bordered"]/li/button')
print(len(title))
for i in range(0,len(title)):
    # print(title[i].text)#打印標題  列表是從0開始  xpath是從1開始
    path=('//ul[@class="usa-accordion-bordered"]/li[{0}]/div/ul/li/a').format(i+1)
    # print(path)
    name=browser.find_elements_by_xpath(path)
    # print(len(name))

    for j in range(0,len(name)):
        name_little=((name[j].get_attribute("textContent")).replace('\n','')).replace(' ','')
        # print(name_little)
        # print('\n')#打印名字
        path_one=('//ul[@class="usa-accordion-bordered"]/li[{0}]/div/ul/li[{1}]').format(i+1,j+1)
        # print(path_one)
        name_content=browser.find_elements_by_xpath(path_one)
        for k in range(len(name_content)):  #打印名字的內容
            cont=((name_content[k].get_attribute("textContent")).replace('\n','')).replace(' ','')
            print(cont)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章