iT邦幫忙

0

請教一個關於chatgpt我都找不到答案的問題 python的parsel.selector.css

  • 分享至 

  • xImage
response ='''
<a class="screen-reader-text skip-link" href="#content" title="Skip to content">Skip to content</a>                <div class="top-bar grid-container top-bar-align-right">
<div class="inside-top-bar">
<aside id="block-10" class="widget inner-padding widget_block widget_text">
<p class="has-small-font-size"></p>
</aside><aside id="block-19" class="widget inner-padding widget_block">
<div class="wp-block-group is-layout-flow"><div class="wp-block-group__inner-container">
<div class="wp-block-columns is-layout-flex wp-container-2">
<div class="wp-block-column is-layout-flow" style="flex-basis:100%">
<p><a href="https://thepornlinks.com/" title="ThePornLinks.com" target="_blank" data-wpel-link="external" rel="external noopener noreferrer">ThePornLinks.com</a></p>
<meta content="160728" name="xubstercom">
</div>
</div>
</div></div>
</aside>                        </div>
</div>
<header class="site-header" id="masthead" aria-label="Site" itemtype="https://schema.org/WPHeader" itemscope>
<div class="inside-header grid-container">
<div class="site-branding">
<p class="main-title" itemprop="headline">
<a href="https://pornchil.com/" rel="home noopener noreferrer" data-wpel-link="internal" target="_blank">
PornChil
</a>
'''

selector = parsel.Selector(text=response)
# print(selector.get())
# exit()
#用屬性把連結撈出來
link = selector.css('.wp-block-columns.is-layout-flex.wp-container-2').getall()
print(link)
'''

這個P標籤沒有class屬性
為什麼會被提取出來
<p><a href="https://thepornlinks.com/" title="ThePornLinks.com" target="_blank" data-wpel-link="external" rel="external noopener noreferrer">ThePornLinks.com</a></p>
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

3
kennex_x
iT邦新手 4 級 ‧ 2023-05-04 09:37:41
最佳解答

Dears,

因為你的程式語法link = selector.css('.wp-block-columns.is-layout-flex.wp-container-2').getall() 是查找符合這個CSS條件底下的所有資料,然後<p>標籤的階層在<div>標籤底下,所以才會得到這個結果。

以下幫你把階層關係整理一下。
CODE:

<div class="wp-block-columns is-layout-flex wp-container-2">
    <div class="wp-block-column is-layout-flow" style="flex-basis:100%">
        <p>
            <a href="https://thepornlinks.com/" title="ThePornLinks.com" target="_blank" data-wpel-link="external" rel="external noopener noreferrer">ThePornLinks.com</a>
        </p>
    <meta content="160728" name="xubstercom">
    </div>
</div>
fdfanmo iT邦新手 5 級 ‧ 2023-05-04 14:24:59 檢舉

謝謝kennex_x大的回答.
這樣我終於弄懂了.
原來是因為階層關係
因為我是在pycharm的訊息視窗中直接複製過來的..
不好意思讓你花時間幫我整理階層關係了.
我終於找到答案.
不然我一直以為語法是哪裡錯了..
感謝您幫忙回答.

我要發表回答

立即登入回答