gpt4 book ai didi

python - 如何将此 XPath 表达式转换为 BeautifulSoup?

转载 作者:太空狗 更新时间:2023-10-29 18:27:05 25 4
gpt4 key购买 nike

在回答previous question , 几个人建议我使用 BeautifulSoup为我的项目。我一直在努力处理他们的文档,但我无法解析它。有人可以指出我应该能够将此表达式转换为 BeautifulSoup 表达式的部分吗?

hxs.select('//td[@class="altRow"][2]/a/@href').re('/.a\w+')

以上表达式来自Scrapy .我正在尝试将正则表达式 re('\.a\w+') 应用于 td class altRow 以从那里获取链接。

我也很感激任何其他教程或文档的指针。我找不到。

感谢您的帮助。

编辑:我正在看这个page :

>>> soup.head.title
<title>White & Case LLP - Lawyers</title>
>>> soup.find(href=re.compile("/cabel"))
>>> soup.find(href=re.compile("/diversity"))
<a href="/diversity/committee">Committee</a>

然而,如果您查看页面源代码,"/cabel" 就在那里:

 <td class="altRow" valign="middle" width="34%"> 
<a href='/cabel'>Abel, Christian</a>

出于某种原因,搜索结果对 BeautifulSoup 不可见,但对 XPath 可见,因为 hxs.select('//td[@class="altRow"][2]/a/@href' ).re('/.a\w+') 捕获“/cabel”

编辑:cobal:它仍然无法正常工作。但是当我搜索这个时:

>>>soup.findAll(href=re.compile(r'/.a\w+'))
[<link href="/FCWSite/Include/styles/main.css" rel="stylesheet" type="text/css" />, <link rel="shortcut icon" type="image/ico" href="/FCWSite/Include/main_favicon.ico" />, <a href="/careers/northamerica">North America</a>, <a href="/careers/middleeastafrica">Middle East Africa</a>, <a href="/careers/europe">Europe</a>, <a href="/careers/latinamerica">Latin America</a>, <a href="/careers/asia">Asia</a>, <a href="/diversity/manager">Diversity Director</a>]
>>>

它返回所有带有第二个字符“a”但不包括律师姓名的链接。因此,由于某些原因,BeautifulSoup 看不到这些链接(例如“/cabel”)。我不明白为什么。

最佳答案

一个选择是使用lxml(我对beautifulsoup不熟悉,所以我不能说如何使用它),它默认支持XPath

编辑:
尝试 (未测试) 测试:

soup.findAll('td', 'altRow')[1].findAll('a', href=re.compile(r'/.a\w+'), recursive=False)

我在 http://www.crummy.com/software/BeautifulSoup/documentation.html 使用了文档

soup 应该是一个 BeautifulSoup 对象

import BeautifulSoup
soup = BeautifulSoup.BeautifulSoup(html_string)

关于python - 如何将此 XPath 表达式转换为 BeautifulSoup?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1814750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com