2017-07-28 43 views

回答

1

是的,我相信你應該可以。

嘗試查找請求和beautifulsoup python模塊。

0

使用美麗的選擇將是使用webbrowser模塊。 隨着webbrowser模塊,您可以在默認的網頁瀏覽器打開,甚至指定首選瀏覽器打開(使用默認是優選的,但是,作爲當然也不能保證用戶的喜好來搭配你的!)

所以你可以打開一個URL像這樣:

import webbrowser 

webbrowser.open_new('https://stackoverflow.com/help/formatting') 

或像這樣:不幸的是

import webbrowser 

a = webbrowser.get('chrome') #target chrome (e.g) 
a.open('https://www.stackoverflow.com') 

,如果你只是堅持哈希標籤(用於錨)到URL的末尾,web瀏覽器不似乎喜歡這個。相反,你應該使用變量定義你的錨,並把它傳遞到一個函數作爲參數:

def open_anchor(self, anchor): 
     """ Open selected anchor in the default webbrowser 
     """ 
     webbrowser.open(anchor) 

有這個page

希望有更多的web瀏覽器實例中,這有助於

+0

另請參閱https://wiki.python.org/moin/HelpOnLinking#Anchors –

1

有兩個Python模塊我會用這個:requestsregular expressions。我會用請求來獲取網站原始的HTML,然後使用正則表達式來獲得,例如您的段落:

import requests, re 
site = requests.get("http://somewebsite.com").text 
paragraphs = re.findall(r"<p>(.*?)</p>", site, re.DOTALL) 
firstPara = paragraphs[0] 
print(firstPara) 

這裏的請求行是不言自明的和正則表達式表示,尋找第一<p>標籤,然後括號意思是回報只是.*?這一點,這是(*)的任何字符(.)最多(?)關閉</p>標記。最後,re.DOTALL只是意味着它將數學換算作爲查找的一部分

+0

喬,只是試過你的代碼,但是我得到列表索引超出範圍。在第4行firstPara =段落[0] –

+0

這將意味着're.findall'沒有返回任何匹配。你能發送一個鏈接到你正在嘗試匹配的原始html嗎?你確定裏面有段落標籤嗎? –