gpt4 book ai didi

regex - 使用 xpath 或 regexp 设置 import.io 爬虫

转载 作者:行者123 更新时间:2023-12-03 15:30:44 31 4
gpt4 key购买 nike

我目前正在尝试设置一个网络爬虫来从房地产网站中提取数据。这些网站的趋势是,每个页面的某些信息不在同一位置,因此我必须弄清楚如何让它提取包含某些短语的文本元素,而不是基于它们的位置。以下是此类页面的一些示例:

http://www.zillow.com/homedetails/2630-Hazy-Creek-Dr-Houston-TX-77084/28388488_zpid/

http://www.zillow.com/homedetails/16514-Park-Firth-Dr-Houston-TX-77084/28357799_zpid/

请注意某些信息(例如 MLS #)如何出现在不同的位置。当我从这些条目之一中提取 xpath 时,我得到://*[@id="yui_3_15_0_1_1435013689406_3296"],而且由于我对 xpath 不太熟悉,我不知道如何更改它以查找一些短语(我当然尝试过,但从未奏效)。 Regexp 似乎是一个很有前途的工具,但是当我使用命令 ^MLS(它应该查找以“MLS”开头的元素)时,它根本不起作用。我知道必须有一种直接的方法来做到这一点,但这是我第一次使用这项服务,所以我还不太熟悉它。和建议将不胜感激。

最佳答案

正则表达式不允许您提取数据,只能清理或修改已提取的文本。

您需要创建一个 XPath 来提取您想要的数据。我为你做了一个例子:

//*[@role="main"]//li[contains(text(), "MLS ")]

说明:即查找页面的主要部分,然后搜索 <li>包含文本 "MLS" .这将提取类似 "MLS #: 66521347" 的内容

您现在可以选择列类型为“数字”以仅获取数字(您也可以使用正则表达式,这正是您可以用它做的事情)。

编辑:即使 XPath 是正确的,它也不会返回 import.io 中的数据。还有另一种方法:使用 XPath 将所有文本放入该部分,然后使用正则表达式选择 MLS。

要使用的 XPath:
//*[@role="main"]/section[@class="zsg-content-section "][1]

要使用的正则表达式:
MLS #: (\d+)

关于regex - 使用 xpath 或 regexp 设置 import.io 爬虫,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30991501/

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