【问题标题】:Python - Get unique website changesPython - 获取独特的网站更改
【发布时间】:2016-12-25 23:56:36
【问题描述】:

这可能是一个奇怪的问题,可能是为什么我还没有找到答案。

我正在进入 Python 并开始着手一个项目,但我需要一些帮助。

我需要一种方法来获得独特的网站更改。

我希望它只需输入 URL 就可以在不同的网站上工作(得到这个工作和所有)。

为了说明这一点。

假设我有一个很大的网站,但我会做一个简单的说明。 原始 HTML 可能如下所示:

<html>
     <body>
          <nav>
               <a>Home</a>
               <a>About</a>
          </nav>

          <section>
              Search!
          </section>
    </body>
</html>

但是例如,如果我们搜索某些内容(如果页面类似于:search.php?q=),我想获得更改,并且只获取网站中的更改。

假设我搜索了苹果和页面(仍然是与上面相同的页面),它给了我们这个:

<html>
     <body>
          <nav>
               <a>Home</a>
               <a>About</a>
          </nav>

          <section>
              You searched for apples!
          </section>
    </body>
</html>

然后我只想在网站中获得这种独特的变化,比如字符串“你搜索了苹果!”。仅仅去除 HTML 的标签是不够的,然后(就像在示例中一样)我们也会得到 Home 和 About 这个词。

如果我只是想针对特定网站使用此功能,然后使用诸如 beautifulsoup 之类的东西,这会容易得多,但正如我所说,我希望它适用于不同的网站。

我知道这是可能的,因为我以前见过。 感谢您的任何帮助!意义重大!

【问题讨论】:

  • 你为什么要这个?不管你似乎基本上想要一个差异

标签: html string python-3.x search web


【解决方案1】:

这是避免对象输出并打印正确输出的方法 只需用此替换您的打印语句行:

print ('\n'.join(diff)) # diff is an object which contains the comparison output

它对我有用,也对你有用。

【讨论】:

    【解决方案2】:

    正如@Pardraic Cunningham 所说,尽管它是主观的并且我相信您会得到很多答案,但许多 imo 中最简单的方法。使用差异检查器,python 自带difflib。您可以从 url 下载文本并将旧版本与新版本进行比较,如下所示:

    import urllib2
    import difflib
    file1 = "myFile1.txt"
    urllib.urlretrieve("http://www.example.com/test.html", "test.txt")
    file2= "test.text"
    diff = difflib.ndiff(file1.readlines(), file2.readlines())
    

    这可能是理想的,也可能不是理想的,但似乎是开始研究的好地方。

    【讨论】:

    • 首先,如果我尝试这个,它会说 str 没有属性 readlines。我也尝试简单地给它正常的字符串,但它给了我类似的东西: 我正在调查为什么(似乎只是返回对象而不是值)跨度>
    猜你喜欢
    • 2020-11-15
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 2017-04-01
    • 2016-11-10
    • 2023-01-01
    相关资源
    最近更新 更多