鱼C论坛

 找回密码
 立即注册
查看: 1140|回复: 4

[已解决]请教一个关于chatgpt我都找不到答案的问题

[复制链接]
发表于 2023-5-4 09:15:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

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>
最佳答案
2023-5-4 10:54:34
原因是您的 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 属性,这是您要查找的链接。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-4 09:36:21 | 显示全部楼层
提的是上一级的 自然也包括它
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-4 10:54:34 | 显示全部楼层    本楼为最佳答案   
原因是您的 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 属性,这是您要查找的链接。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-4 14:28:07 | 显示全部楼层
wp231957 发表于 2023-5-4 09:36
提的是上一级的 自然也包括它

謝謝wp231957大大的回覆
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-4 14:28:51 | 显示全部楼层
isdkz 发表于 2023-5-4 10:54
原因是您的 CSS 选择器不够具体。选择器  .wp-block-columns.is-layout-flex.wp-container-2  定位到包含您 ...

感谢isdkz的帮忙指导这样我明白了.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 09:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表