2016-08-18 57 views
0

這可能是一個奇怪的問題,可能爲什麼我還沒有找到答案。Python - 獲取獨特的網站更改

我進入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,但是說,我想這在不同地點工作。

我知道這是可能的,因爲我以前見過它。 感謝您的幫助!意義重大!

+0

你爲什麼要這樣?無論你似乎基本上想要一個區別 –

回答

0

的最簡單的方法很多IMO雖然其主觀和IM相信你會得到很多答案是@Pardraic坎寧安說。使用差異檢查器,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()) 

這可能是也可能不是很理想,但似乎是一個好地方開始研究。

+0

首先,如果我嘗試這樣說它說str沒有屬性readlines。我也嘗試過簡單地給它一個正常的字符串,但它給了我一些東西:<生成器對象Differ.compare在0x000001A43E77F0A0>我正在研究爲什麼確切(似乎只是返回對象而不是值) – mikkel1156