【问题标题】:Extract specific HREF with xpath or css使用 xpath 或 css 提取特定的 HREF
【发布时间】:2021-04-03 06:39:45
【问题描述】:

最近我处理了一个不寻常的元素,它不是微不足道的。请您建议如何检索href。

我正在使用 python scrapy 抓取一些 Tripadvisor 的餐厅,需要从位置和联系人部分检索 Google 地图的链接(href 属性)。你能建议如何 以网页为例(link

元素的代码:

<a data-encoded-url="S0k3X2h0dHBzOi8vbWFwcy5nb29nbGUuY29tL21hcHM/c2FkZHI9JmRhZGRyPVNjYWJlbGxzdHIuKzEwLTExJTJDKzE0MTA5K0JlcmxpbitHZXJtYW55QDUyLjQyODgxOCwxMy4xODI0MjFfeVBw" class="_2wKz--mA _27M8V6YV" target="_blank" href="**https://maps.google.com/maps?saddr=&amp;daddr=Scabellstr.+10-11%2C+14109+Berlin+Germany@52.428818,13.182421**"><span class="_2saB_OSe">Scabellstr. 10-11, 14109 Berlin Germany</span><span class="ui_icon external-link-no-box _2OpUzCuO"></span></a>

我尝试了以下 XPATH,但每次都得到 None 作为响应,或者无法获取 href 属性上的数据,就好像它不存在一样。

response.xpath("//a[contains(@class, '_2wKz--mA _27M8V6YV')]").getall()

输出:

['<a data-encoded-url="Z3pLX2h0dHBzOi8vbWFwcy5nb29nbGUuY29tL21hcHM/c2FkZHI9JmRhZGRyPVNjYWJlbGxzdHIuKzEwLTExJTJDKzE0MTA5K0JlcmxpbitHZXJtYW55QDUyLjQyODgxOCwxMy4xODI0MjFfMk1z" class="_2wKz--mA _27M8V6YV" target="_blank"><span class="_2saB_OSe">Scabellstr. 10-11, 14109 Berlin Germany</span><span class="ui_icon external-link-no-box _2OpUzCuO"></span></a>',

“网站”]

【问题讨论】:

    标签: python html css xpath scrapy


    【解决方案1】:

    使用您已经获得的data-encoded-url 并使用 Base64 对其进行解码。示例:

    >>> import base64
    >>> base64.b64decode("Z3pLX2h0dHBzOi8vbWFwcy5nb29nbGUuY29tL21hcHM/c2FkZHI9JmRhZGRyPVNjYWJlbGxzdHIuKzEwLTExJTJDKzE0MTA5K0JlcmxpbitHZXJtYW55QDUyLjQyODgxOCwxMy4xODI0MjFfMk1z").decode("utf-8")
    'gzK_https://maps.google.com/maps?saddr=&daddr=Scabellstr.+10-11%2C+14109+Berlin+Germany@52.428818,13.182421_2Ms'
    

    然后您可以删除gzK_ 前缀和_2Ms 后缀,您将获得您的网址。

    【讨论】:

      【解决方案2】:

      您尝试使用特定的 XPath 查询来获取像 "//a[contains(@class, 'foobar')]/@href" 这样的 href 来检索元素的特定属性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-09-11
        • 1970-01-01
        • 2018-08-31
        • 1970-01-01
        • 1970-01-01
        • 2016-01-06
        • 1970-01-01
        相关资源
        最近更新 更多