【问题标题】:The restaurant url on tripadvisor is encoded so I can't scrape it [duplicate]tripadvisor 上的餐厅网址已编码,因此我无法抓取它[重复]
【发布时间】:2020-02-28 13:41:04
【问题描述】:

所以我正在尝试在 TripAdvisor 上抓取餐厅网址。问题是,当我在任何餐厅的 HTML 中找到链接时,它看起来像是被编码的。例如在这家餐厅:

https://www.tripadvisor.co.uk/Restaurant_Review-g186338-d13544747-Reviews-Amrutha_Lounge-London_England.html

您可以直接访问网站的元素在 HTML 中显示以下内容。

data-encoded-url="UEJDX2h0dHA6Ly93d3cuYW1ydXRoYS5jby51ay9fdkoz"

我怎样才能得到实际的网站?

【问题讨论】:

    标签: python beautifulsoup python-requests


    【解决方案1】:

    您可以执行以下操作:

    import base64
    code = "UEJDX2h0dHA6Ly93d3cuYW1ydXRoYS5jby51ay9fdkoz"
    decoded = base64.b64decode(code)
    print(decoded.decode()) # prints PBC_http://www.amrutha.co.uk/_vJ3
    

    您可能希望去掉前缀 PBC_ 和后缀 _vJ3

    【讨论】:

      【解决方案2】:

      Samuel 的答案更好,它实际上是一个问题的解决方案,但谁知道也许你可以在其他情况下使用它。在这种特殊情况下,您还可以在隐藏站点链接的脚本标记上使用正则表达式。

      import re, requests
      from bs4 import BeautifulSoup as bs
      url = 'https://www.tripadvisor.co.uk/Restaurant_Review-g186338-d13544747-Reviews-Amrutha_Lounge-London_England.html'
      
      regex = re.compile(r'\"website\":\"http[s]?://www\.[\w]+\.[\w]+[\.]?[\w]+/\"')
      
      response = requests.get(url)
      bSoup = bs(response.text, 'html.parser')
      
      soup = bSoup.find_all('script', text=regex)
      link = regex.findall(str(soup[0]))
      print(link[0][11:-1])
      

      我编辑这篇文章并做一些解释。谢谢 Samuel 的建议。

      好吧,这段代码将找到一个网站链接,该链接使用 BeautifulSoup 和正则表达式存储在标签中。 bSoup.find_all('script', text=regex) 找到两个标签。在第一个,soup[0],网站链接被存储。因为不只是一个链接,还有很少的tripadvisor 站点链接,我使用正则表达式,如上所示,只找到一个需要的链接,链接到酒店站点。因为正则表达式返回“网站”:“http://www.amrutha.co.uk”,所以我用链接[0][11:-1] 对其进行切片,它只返回http://www.amrutha.co.uk

      【讨论】:

      • 如果你能解释一下你的代码是做什么的,这可能会有所帮助。
      • 它使用 BeautifulSoup 和正则表达式找到存储在
      • 对不起,我犯了一个错误。第一个
      • @您应该将此信息添加到您的答案中,而不是作为评论。你可以编辑你的答案:)
      • 好的。谢谢,我会的:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-19
      • 2013-02-12
      相关资源
      最近更新 更多