我想用python在dashboard中编写解析程序

2024-09-28 03:22:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我是初学者。 我想从仪表板做解析程序。你知道吗

这是我的python代码

此代码可以首先接近标记。但它不能去第二,第三个标签。 我试图“锚定元素[1].click()”,但这是一个错误的代码。 我不知道哪里不对

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Firefox()

url = 'http://www.naver.com'

driver.get(url)

id_input = driver.find_element_by_name('id')
id_input.send_keys('jaeyeon93')

pass_input = driver.find_element_by_name('pw')
pass_input.send_keys('wodus0101')

log_button = driver.find_element_by_class_name('btn_login')

log_button.click()

time.sleep(2)
url2 = 'cafe.naver.com/startdata'

driver.get(url2)
#go to dashborad.
driver.find_element_by_xpath(".//*[@id='menuLink0']").click()
#change iframe. dashboard source code is in iframe
board_iframe = driver.find_element_by_id('cafe_main')
driver.switch_to_frame(board_iframe)


anchor_element = driver.find_elements_by_tag_name('a')
anchor_element.click()

下面是我要单击并使用loop解析的代码

<iframe name='cafe_main' id='cafe_main'>
<form name='ArticleList'>
    <table class="board-box">
        <tbody>
            <tr>
                <td></td>
                <td class='board-list'>
                    <span>
                        <span class='aaa'>
                            <a class="m-tcol-c" onmouseover="" onclick="return dynamicParamLink('/ArticleRead.nhn?clubid=28279768&page=1&boardtype=L&articleid=91&referrerAllArticles=true', event);" href="/ArticleRead.nhn?clubid=28279768&page=1&boardtype=L&articleid=91&referrerAllArticles=true">API Store</a>
                        </span>
                    </span>
                </td>
            </tr>

            <tr>
                <td></td>
                <td class='board-list'>
                    <span>
                        <span class='aaa'>
                            <a class="m-tcol-c" onmouseover="" onclick="return dynamicParamLink('/ArticleRead.nhn?clubid=28279768&page=1&boardtype=L&articleid=90&referrerAllArticles=true', event);" href="/ArticleRead.nhn?clubid=28279768&page=1&boardtype=L&articleid=90&referrerAllArticles=true">WikiDocs - Online books platform</a>
                        </span>
                    </span>
                </td>
            </tr>

            <tr>
                <td></td>
                <td class='board-list'>
                    <span>
                        <span class='aaa'>
                            <a class="m-tcol-c" onmouseover="" onclick="return dynamicParamLink('/ArticleRead.nhn?clubid=28279768&page=1&boardtype=L&articleid=90&referrerAllArticles=true', event);" href="/ArticleRead.nhn?clubid=28279768&page=1&boardtype=L&articleid=90&referrerAllArticles=true">Third Href</a>
                        </span>
                    </span>
                </td>
            </tr>

            <tr>
                <td></td>
                <td class='board-list'>
                    <span>
                        <span class='aaa'>
                            <a class="m-tcol-c" onmouseover="" onclick="return dynamicParamLink('/ArticleRead.nhn?clubid=28279768&page=1&boardtype=L&articleid=90&referrerAllArticles=true', event);" href="/ArticleRead.nhn?clubid=28279768&page=1&boardtype=L&articleid=90&referrerAllArticles=true">4th Href</a>
                        </span>
                    </span>
                </td>
            </tr>
        </tbody>
    </table>
</form>
</iframe>

求你了。帮助我。你知道吗


Tags: boardtruedriverpageelementtrclasstd
2条回答

它只执行一次。要做更多的事情,你需要一个for循环

编辑:

此处:

for(your_range):
    anchor_element = driver.find_elements_by_tag_name('a')
    anchor_element.click()

您可以使用以下代码获得所有锚元素,而不需要像现在代码中那样多的查询:

driver.get(url2)
###### New code ########
links = driver.find_elements_by_xpath(".//a")
for link in links:
    link.click()

相关问题 更多 >

    热门问题