亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python抓取多種類型的頁面方法實例

 更新時間:2019年11月20日 15:18:48   投稿:laozhang  
在本篇文章里小編給大家整理的是關(guān)于python抓取多種類型的頁面方法實例內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。

與抓取預(yù)定義好的頁面集合不同,抓取一個網(wǎng)站的所有內(nèi)鏈會帶來一個 挑戰(zhàn),即你不知道會獲得什么。好在有幾種基本的方法可以識別頁面類型。

通過URL

一個網(wǎng)站中所有的博客文章可能都會包含一個 URL(例如 http://example.com/blog/title-of-post)。

通過網(wǎng)站中存在或者缺失的特定字段

如果一個頁面包含日期,但是不包含作者名字,那你可以將其歸類 為新聞稿。如果它有標(biāo)題、主圖片、價格,但是沒有主要內(nèi)容,那么它 可能是一個產(chǎn)品頁面。

通過頁面中出現(xiàn)的特定標(biāo)簽識別頁面

即使不抓取某個標(biāo)簽內(nèi)的數(shù)據(jù),你仍然可以利用這個標(biāo)簽。你的爬 蟲可以尋找類似于 <div id="related-products"> 這樣的元素來識 別產(chǎn)品頁面,即便是爬蟲對相關(guān)產(chǎn)品的內(nèi)容并不感興趣。

為了跟蹤多個頁面類型,你需要在 Python 中有多個類型的頁面對象。 這通過兩種方式來實現(xiàn)。

如果頁面都是相似的(它們基本上都是相同類型的內(nèi)容),你可能需要 在現(xiàn)有的網(wǎng)頁對象中加入一個 pageType 屬性:

class Website:
"""所有文章/網(wǎng)頁的共同基類"""
def __init__(self, type, name, url, searchUrl, resultListing,
resultUrl, absoluteUrl, titleTag, bodyTag):
self.name = name
self.url = url
self.titleTag = titleTag
self.bodyTag = bodyTag
self.pageType = pageType

如果你在一個類 SQL 的數(shù)據(jù)庫中對這些頁面進行排序,這種模式類型 意味著這些頁面應(yīng)該被存放在同一張表中,并且加入一個額外的 pageType 列。

如果你抓取的頁面或內(nèi)容各不相同(它們包含不同類型的字段),就需 要為每個頁面類型創(chuàng)建一個新的對象。當(dāng)然,有些東西是所有網(wǎng)頁共有 的——它們都有一個 URL,也可能都有一個名稱或者頁面標(biāo)題。這種 情況非常適合用子類:

class Website:
"""所有文章/網(wǎng)頁的共同基類"""

def __init__(self, name, url, titleTag):
self.name = name
self.url = url
self.titleTag = titleTag

這不是一個由你的爬蟲直接使用的對象,而是將被你的頁面類型引用的 對象:

class Product(Website):
"""產(chǎn)品頁面要抓取的信息"""
def __init__(self, name, url, titleTag, productNumber, price):    
Website.__init__(self, name, url, TitleTag)
self.productNumberTag = productNumberTag
self.priceTag = priceTag
class Article(Website):
"""文章頁面要抓取的信息"""
def __init__(self, name, url, titleTag, bodyTag, dateTag):
Website.__init__(self, name, url, titleTag)
self.bodyTag = bodyTag
self.dateTag = dateTag

這個產(chǎn)品頁面擴展了Website基類,并且加入了僅適用于產(chǎn)品的productNumber和price屬性,而Article類加入了body和date屬性,這兩個屬性是不適用于產(chǎn)品的。

你可以用這兩個類去抓取一個商店網(wǎng)站,該網(wǎng)站除了產(chǎn)品,可能還包含博客文章或新聞稿。

希望以上知識點能夠幫助到大家,感謝大家對腳本之家的支持。

相關(guān)文章

  • 利用python實現(xiàn)詞頻統(tǒng)計分析的代碼示例

    利用python實現(xiàn)詞頻統(tǒng)計分析的代碼示例

    詞頻統(tǒng)計是指在文本或語音數(shù)據(jù)中,統(tǒng)計每個單詞或符號出現(xiàn)的次數(shù),以便對文本或語音數(shù)據(jù)進,這篇文章將詳細介紹分詞后如何進行詞頻統(tǒng)計分析
    2023-06-06
  • 在Lighttpd服務(wù)器中運行Django應(yīng)用的方法

    在Lighttpd服務(wù)器中運行Django應(yīng)用的方法

    這篇文章主要介紹了在Lighttpd服務(wù)器中運行Django應(yīng)用的方法,本文所采用的是最流行的FastCGI模塊,包括同時運行多個Django應(yīng)用的方法,需要的朋友可以參考下
    2015-07-07
  • Python 實現(xiàn)RSA加解密文本文件

    Python 實現(xiàn)RSA加解密文本文件

    這篇文章主要介紹了Python 實現(xiàn)RSA加解密文本文件的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • python smtplib發(fā)送帶附件郵件小程序

    python smtplib發(fā)送帶附件郵件小程序

    這篇文章主要為大家詳細介紹了python smtplib發(fā)送帶附件郵件小程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 如何使用python請求傳遞csrftoken

    如何使用python請求傳遞csrftoken

    這篇文章主要介紹了如何使用python請求傳遞csrftoken問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python中如何優(yōu)雅的合并兩個字典(dict)方法示例

    Python中如何優(yōu)雅的合并兩個字典(dict)方法示例

    字典是Python語言中唯一的映射類型,在我們?nèi)粘9ぷ髦薪?jīng)常會遇到,下面這篇文章主要給大家介紹了關(guān)于Python中如何優(yōu)雅的合并兩個字典(dict)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • Gradio機器學(xué)習(xí)模型快速部署工具接口狀態(tài)

    Gradio機器學(xué)習(xí)模型快速部署工具接口狀態(tài)

    這篇文章主要為大家介紹了Gradio機器學(xué)習(xí)模型快速部署工具接口狀態(tài)的原文翻譯,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • 使用Python的Twisted框架編寫簡單的網(wǎng)絡(luò)客戶端

    使用Python的Twisted框架編寫簡單的網(wǎng)絡(luò)客戶端

    這篇文章主要介紹了使用Python的Twisted框架編寫簡單的網(wǎng)絡(luò)客戶端,翻譯自Twisted文檔,包括一個簡單的IRC客戶端的實現(xiàn),需要的朋友可以參考下
    2015-04-04
  • python運行時間的幾種方法

    python運行時間的幾種方法

    這篇文章主要為大家詳細介紹了python運行時間的幾種方法,分析每一種運行時間方法的利弊,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Python挑選文件夾里寬大于300圖片的方法

    Python挑選文件夾里寬大于300圖片的方法

    這篇文章主要介紹了Python挑選文件夾里寬大于300圖片的方法,實例分析了Python中PIL庫的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03

最新評論