我對Python相當陌生,但我想知道是否可以利用Python及其模塊。要從頁面1中檢索href,然後在頁面2中檢索第一個段落。Python可以在頁面1上獲得Href鏈接,然後從頁面2獲取段落?
Q2:另外,如何在頁面1上使用相同的div類刮掉前10個鏈接hrefs,然後刮掉前10個段落,而循環?
我對Python相當陌生,但我想知道是否可以利用Python及其模塊。要從頁面1中檢索href,然後在頁面2中檢索第一個段落。Python可以在頁面1上獲得Href鏈接,然後從頁面2獲取段落?
Q2:另外,如何在頁面1上使用相同的div類刮掉前10個鏈接hrefs,然後刮掉前10個段落,而循環?
是的,我相信你應該可以。
嘗試查找請求和beautifulsoup python模塊。
使用美麗的選擇將是使用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瀏覽器實例中,這有助於
有兩個Python模塊我會用這個:requests和regular 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只是意味着它將數學換算作爲查找的一部分
喬,只是試過你的代碼,但是我得到列表索引超出範圍。在第4行firstPara =段落[0] –
這將意味着're.findall'沒有返回任何匹配。你能發送一個鏈接到你正在嘗試匹配的原始html嗎?你確定裏面有段落標籤嗎? –
另請參閱https://wiki.python.org/moin/HelpOnLinking#Anchors –