在我們每天的上網衝浪中,打開一個網頁的第一件事情,往往是看看這個網頁的標題。有時我們需要爬取一大批網頁,獲取它們的標題信息。在這篇文章中,我們將學習如何使用Python輸出網頁標題,從而輕鬆獲取網頁信息,加速我們的工作。
一、Python網頁輸出JSON
要獲取網頁標題,第一步將是爬取網頁HTML內容,使用Python中的’urllib’模塊可以很容易地實現這一點。在下面的代碼段中,我們用Python爬取嗶哩嗶哩的HTML內容,並將其輸出為JSON格式。
import urllib.request import json url = 'http://www.bilibili.com' req = urllib.request.urlopen(url) html = req.read() charset = req.info().get('charset', 'utf-8') html = html.decode(charset) title = html[html.find('') + 7 : html.find(' ')] result = {'url': url, 'title': title} json_result = json.dumps(result, ensure_ascii=False) print(json_result)
在上述代碼中,我們首先用Python的’urllib.request’模塊打開了嗶哩嗶哩網站,並讀取了其HTML內容。接着我們使用’json’模塊,將網站的網址和標題組合成了一個json對象。最後我們使用’json.dumps’將JSON對象轉換為JSON字符串,並使用’print’函數進行輸出。在這裡,我們使用了’ensure_ascii=False’,這樣可以確保有中文的網頁標題也可以被正確地輸出。
二、Python怎麼輸出中文標題
許多網站的標題可能包含中文字符。為了確保這些字符能夠被 Python 正確地讀取和輸出,我們需要確定它們所使用的編碼格式,並將 Python 的編碼格式設置為相同的格式。有時候,我們也需要對編碼格式進行轉換,將其轉換為 Python 可以讀取的編碼格式。在下面這個例子中,我們將使用 Python 來獲取網頁標題,並確保其正確地輸出中文字符。
import urllib.request import chardet url = 'http://www.163.com' req = urllib.request.urlopen(url) html = req.read() encoding = chardet.detect(html)['encoding'] html = html.decode(encoding) title_utf8 = html[html.find('') + 7 : html.find(' ')] title_gbk = title_utf8.encode('utf-8').decode('gbk') print(title_gbk)
在上述代碼中,我們使用了’chardet’模塊來猜測網頁HTML內容的編碼格式。接着我們使用這個編碼格式將網頁內容解碼成Unicode字符串。使用Unicode字符串,我們可以更加容易地處理網頁標題中的中文字符。然後我們使用UTF-8編碼格式將字符串編碼,再將它轉換為GBK編碼格式。最後,我們輸出了這個網站的標題。
三、Python獲取網頁標題
下面的代碼演示了如何使用Python獲取一個網站的標題。
import urllib.request url = 'http://www.baidu.com' req = urllib.request.urlopen(url) html = req.read() charset = req.info().get('charset', 'utf-8') html = html.decode(charset) title = html[html.find('') + 7 : html.find(' ')] print(title)
在這個代碼段中,我們使用Python中的 urllib.request 來打開百度的網站,並讀取其HTML內容。接着,我們使用’infp().get’函數來獲取HTML的編碼格式,並將其用於解碼HTML。最後,我們使用字符串切片操作獲取百度網站的標題,並輸出它。
四、Python爬取網頁標題
下面我們演示一個完整的Python爬蟲程序,用於獲取一個網站的標題。
import requests from bs4 import BeautifulSoup url = 'http://www.sohu.com/' r = requests.get(url) r.encoding = r.apparent_encoding soup = BeautifulSoup(r.text, 'html.parser') title = soup.title.string print(title)
在上述代碼中,我們首先使用’ requests ‘模塊獲取我們想要爬取信息的網站。接着,我們使用 BeautifulSoup 模塊解析HTML,並找到網站的標題。最終,我們輸出標題。
五、Python爬取網頁標題和日期
與獲取網頁標題類似,我們經常需要獲取網頁上的其他信息,例如發佈的日期。接下來,讓我們看一個Python程序,它可以輸出網頁標題和發佈日期。
import requests from bs4 import BeautifulSoup url = 'http://www.xinhuanet.com/politics/' r = requests.get(url) r.encoding = r.apparent_encoding soup = BeautifulSoup(r.text, 'html.parser') news_list = soup.find_all(class_='clearfix') for news in news_list: title = news.find('a').attrs['title'] date = news.find('span').string print('{} - {}'.format(title, date))
在這個代碼段中,我們首先使用’ requests ‘模塊獲取新華網政治新聞的網頁源代碼。接着,我們使用 BeautifulSoup 來解析HTML,找到所有帶有’class=”clearfix”‘屬性的標籤。對於每個新聞條目,我們使用’find’函數來找到該新聞的標題和發佈日期,並使用’format’函數進行輸出。
結論
在這篇文章中,我們學習了如何使用Python輸出網頁的標題。無論你想要使用哪種方法來獲取標題,Python提供了大量可用的工具,可以方便,高效地進行網頁信息的獲取,使我們的工作更加快捷和便利。
原創文章,作者:UWXX,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/140096.html