请教一个关于chatgpt我都找不到答案的问题
import parsel
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>
提的是上一级的 自然也包括它 原因是您的 CSS 选择器不够具体。选择器.wp-block-columns.is-layout-flex.wp-container-2定位到包含您提到的<p>标签的<div>元素,但它没有根据<p>标签的 class 属性进行筛选。
要提取具有特定 class 属性的<p>标签,您可以修改 CSS 选择器。例如,如果您想提取具有名为 "example-class" 的类的<p>标签,可以使用以下选择器:
link = selector.css('p.example-class').getall()
然而,根据您提供的 HTML,似乎您想提取<p>标签内的链接。为此,您可以修改 CSS 选择器以直接定位到<a>元素:
link = selector.css('.wp-block-columns.is-layout-flex.wp-container-2 p a::attr(href)').getall()
此选择器专门定位到指定类的<div>内的<p>标签中的<a>元素,并提取 href 属性,这是您要查找的链接。 wp231957 发表于 2023-5-4 09:36
提的是上一级的 自然也包括它
謝謝wp231957大大的回覆 isdkz 发表于 2023-5-4 10:54
原因是您的 CSS 选择器不够具体。选择器.wp-block-columns.is-layout-flex.wp-container-2定位到包含您 ...
感谢isdkz的帮忙指导这样我明白了.
页:
[1]