这可能是一个奇怪的问题,可能也是为什么我还没有找到答案。
我正在进入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这样的东西,这将会更容易,但正如所说,我希望这可以在不同的网站上工作。
我知道这是可能的,因为我以前见过它。 感谢您的帮助!意味着很多!
答案 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
它为我工作,它将为您工作。