如何使用Xpath抓取Google URL(包含但不包含)

时间:2020-09-10 04:41:04

标签: python selenium xpath

我想从Google搜索结果中获取网址。

此xpath可以完美运行,但是存在问题:

//div[@class='r']/a

Google从精选的片段和“也有人问”(https://www.google.com/search?q=people+also+ask+example)中显示了一些结果,而xpath会获得所有这些URL结果。

我意识到有一个父类为“ g”类,只有“ People Also Ask div”类为“ kno-kp”。

因此解决方案很简单:

选择每个包含“ g”但不包含“ kno-kp”的div类

google results

这是我的xpath,但是不起作用:

//div[contains(@class,'g') and not(contains(@class,'kno-kp'))]//div[@class='r']/a

谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我认为它可以解决您的问题:

public static string GetString(in this ReadOnlySequence<byte> payload,
    Encoding encoding = null)
{
    encoding ??= Encoding.UTF8;
    return payload.IsSingleSegment ? encoding.GetString(payload.FirstSpan)
        : GetStringSlow(payload, encoding);

    static string GetStringSlow(in ReadOnlySequence<byte> payload, Encoding encoding)
    {
        // linearize
        int length = checked((int)payload.Length);
        var oversized = ArrayPool<byte>.Shared.Rent(length);
        try
        {
            payload.CopyTo(oversized);
            return encoding.GetString(oversized, 0, length);
        }
        finally
        {
            ArrayPool<byte>.Shared.Return(oversized);
        }
    }
}

上面有关xpath的有用信息:here