Python - 获取独特的网站更改

时间:2016-08-18 22:42:52

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

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

我正在进入Python并为自己设定项目,但我需要一些帮助。

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

我希望它只需输入网址就可以在不同的网站上工作(让这个工作得很好)。

所以说明一下。

让我们想象一下我有一个很棒的网站,但我会做一个简单的说明。 原始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>

然后我想只在网站上进行这种独特的更改,比如字符串“You searching for apples!”。简单地剥离其标签的HTML是不够的,那么(就像在示例中一样)我们也会得到Home和About这个词。

如果我只是想要一个特定的网站,然后使用像beautifulsoup这样的东西,这将会更容易,但正如所说,我希望这可以在不同的网站上工作。

我知道这是可能的,因为我以前见过它。 感谢您的帮助!意味着很多!

2 个答案:

答案 0 :(得分:0)

许多imo的最简单的方式虽然它主观并且我确定你会得到很多答案,正如@Pardraic Cunningham所说。使用差异检查器,python附带difflib。您可以从网址下载文本,并将以前的版本与新版本进行比较,如下所示:

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())

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

答案 1 :(得分:0)

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

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

它为我工作,它将为您工作。