国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

使用 Python 的 requests 和 Beautiful Soup 來分析網頁

開發
瀏覽網頁可能占了你一天中的大部分時間。然而,你總是需要手動瀏覽,這很討厭,不是嗎?你必須打開瀏覽器,然后訪問一個網站,單擊按鈕,移動鼠標……相當費時費力。如果能夠通過代碼與互聯網交互,豈不是更好嗎?

  • 學習這個 Python 教程,輕松提取網頁的有關信息。

瀏覽網頁可能占了你一天中的大部分時間。然而,你總是需要手動瀏覽,這很討厭,不是嗎?你必須打開瀏覽器,然后訪問一個網站,單擊按鈕,移動鼠標……相當費時費力。如果能夠通過代碼與互聯網交互,豈不是更好嗎?

在 Python 的 requests 模塊的幫助下,你可以使用 Python 從互聯網中獲取數據:

    import requests
DATA = "https://opensource.com/article/22/5/document-source-code-doxygen-linux"
PAGE = requests.get(DATA)
print(PAGE.text)

在以上代碼示例中,你首先導入了 requests 模塊。接著,你創建了兩個變量:其中一個叫做 DATA,它用來保存你要下載的 URL。在之后的代碼中,你將能夠在每次運行應用程序時提供不同的 URL。不過,就目前而言,最簡單的方法是“硬編碼”一個測試 URL,以達到演示目的。

另一個變量是 PAGE。代碼讀取了存儲在 DATA 中的 URL,然后把它作為參數傳入 requests.get 函數,最后用變量 PAGE 來接收函數的返回值。requests 模塊及其 .get 函數的功能是:“讀取”一個互聯網地址(一個 URL)、訪問互聯網,并下載位于該地址的任何內容。

當然,其中涉及到很多步驟。幸運的是,你不必自己弄清楚,這也正是 Python 模塊存在的原因。最后,你告訴 Python 打印 requests.get 存儲在 PAGE 變量的 .text 字段中的所有內容。

Beautiful Soup

如果你運行上面的示例代碼,你會得到示例 URL 的所有內容,并且,它們會不加選擇地輸出到你的終端里。這是因為在代碼中,你對 requests 收集到的數據所做的唯一事情,就是打印它。然而,解析文本才是更加有趣的。

Python 可以通過其最基本的功能來“讀取”文本,但解析文本允許你搜索模式、特定單詞、HTML 標簽等。你可以自己解析 requests 返回的文本,不過,使用專門的模塊會容易得多。針對 HTML 和 XML 文本,我們有 Beautiful Soup 庫。

下面這段代碼完成了同樣的事情,只不過,它使用了 Beautiful Soup 來解析下載的文本。因為 Beautiful Soup 可以識別 HTML 元素,所以你可以使用它的一些內置功能,讓輸出對人眼更友好。

例如,在程序的末尾,你可以使用 Beautiful Soup 的 .prettify 函數來處理文本(使其更美觀),而不是直接打印原始文本:

    from bs4 import BeautifulSoup
import requests
PAGE = requests.get("https://opensource.com/article/22/5/document-source-code-doxygen-linux")
SOUP = BeautifulSoup(PAGE.text, 'html.parser')
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
# do a thing here
print(SOUP.prettify())

通過以上代碼,我們確保了每個打開的 HTML 標簽都輸出在單獨的一行,并帶有適當的縮進,以幫助說明標簽的繼承關系。實際上,Beautiful Soup 能夠通過更多方式來理解 HTML 標簽,而不僅僅是將它打印出來。

你可以選擇打印某個特定標簽,而不是打印整個頁面。例如,嘗試將打印的選擇器從 print(SOUP.prettify()) 更改為:

    print(SOUP.p)

這只會打印一個 <p> 標簽。具體來說,它只打印遇到的第一個 <p> 標簽。要打印所有的 <p> 標簽,你需要使用一個循環。

循環

使用 Beautiful Soup 的 find_all 函數,你可以創建一個 for 循環,從而遍歷 SOUP 變量中包含的整個網頁。除了 <p> 標簽之外,你可能也會對其他標簽感興趣,因此最好將其構建為自定義函數,由 Python 中的 def 關鍵字(意思是 “定義”define)指定。

    def loopit():
for TAG in SOUP.find_all('p'):
print(TAG)

你可以隨意更改臨時變量 TAG 的名字,例如 ITEM 或 i 或任何你喜歡的。每次循環運行時,TAG 中都會包含 find_all 函數的搜索結果。在此代碼中,它搜索的是 <p> 標簽。

函數不會自動執行,除非你顯式地調用它。你可以在代碼的末尾調用這個函數:

    # Press the green button in the gutter to run the script.
if __name__ == '__main__':
# do a thing here
loopit()

運行代碼以查看所有的 <p> 標簽和它們的內容。

只獲取內容

你可以通過指定只需要 “字符串string”(它是 “單詞words” 的編程術語)來排除打印標簽。

    def loopit():
for TAG in SOUP.find_all('p'):
print(TAG.string)

當然,一旦你有了網頁的文本,你就可以用標準的 Python 字符串庫進一步解析它。例如,你可以使用 len 和 split 函數獲得單詞個數:

    def loopit():
for TAG in SOUP.find_all('p'):
if TAG.string is not None:
print(len(TAG.string.split()))

這將打印每個段落元素中的字符串個數,省略那些沒有任何字符串的段落。要獲得字符串總數,你需要用到變量和一些基本數學知識:

    def loopit():
NUM = 0
for TAG in SOUP.find_all('p'):
if TAG.string is not None:
NUM = NUM + len(TAG.string.split())
print("Grand total is ", NUM)

Python 作業

你可以使用 Beautiful Soup 和 Python 提取更多信息。以下是有關如何改進你的應用程序的一些想法:

  • 接受輸入,這樣你就可以在啟動應用程序時,指定要下載和分析的 URL。
  • 統計頁面上圖片(<img> 標簽)的數量。
  • 統計另一個標簽中的圖片(<img> 標簽)的數量(例如,僅出現在<main> div 中的圖片,或僅出現在</p> 標簽之后的圖片)。
責任編輯:未麗燕 來源: Linux中國
相關推薦

2021-12-16 15:09:45

PythonBeautiful S編程語言

2023-11-28 08:34:39

Python工具

2023-12-08 18:05:12

文本爬蟲Python

2023-01-04 17:59:00

BeautifulPython

2023-03-09 15:55:17

JavaScriptURLCSS

2017-08-02 07:36:06

大數據PythonOpenCV

2023-02-03 11:40:49

機器學習分析情感

2021-03-16 21:45:59

Python Resize機制

2010-06-24 16:09:30

IPX協議

2019-05-20 15:08:07

PythonPyPI庫attrs

2016-03-18 09:44:05

隊列分析應用留存用戶行為

2010-03-03 15:39:50

Python抓取網頁內

2019-04-29 11:14:25

MySQL存儲排序

2024-10-28 08:24:17

2021-03-30 11:06:29

數據驅動項目經理CIO

2010-07-07 16:49:39

VTP協議

2023-07-26 14:49:08

2009-08-11 08:58:19

linux命令瀏覽網頁linux命令行參數linux命令行

2021-07-21 08:59:10

requestsPython協程

2017-03-10 10:16:37

PythonRequests庫
點贊
收藏

51CTO技術棧公眾號

免费看污久久久| 成人xxxx| 青青草综合网| 欧美国产日韩在线| 精品国产黄a∨片高清在线| 日韩欧美一区二区免费| 在线观看黄色| 亚洲午夜免费视频| 国产毛片毛片| 亚洲乱码中文字幕| 97在线免费| 国产日产欧美一区| 麻豆tv在线播放| 成人午夜私人影院| 日韩小视频网站| 成人综合在线观看| 日本中文字幕亚洲| 成人av免费在线观看| www.亚洲视频.com| 成人精品小蝌蚪| 欧美日韩激情视频在线观看| 91在线视频免费91| 国内自拍视频一区| 中文字幕日韩精品一区| 三级短视频在线| 亚洲免费观看高清完整版在线观看 | 午夜精品久久| 国产视频一区二区不卡| 红桃视频国产精品| 久久综合一区二区三区| 丝袜美腿一区二区三区| 手机看片福利永久国产日韩| 六月婷婷色综合| 青青草视频在线免费播放| 久久久久久**毛片大全| 国产一级二级在线| 在线视频国内自拍亚洲视频| 粗大黑人巨茎大战欧美成人| 亚洲精品电影网| 欧美美女福利视频| 午夜欧美大片免费观看| 日韩欧美一区二区三区在线视频| 91精品免费看| 狠狠干综合网| 中文字幕在线亚洲精品| 99久久99久久久精品齐齐| 黄色一级片国产| 中文字幕日本乱码精品影院| 深夜影院在线观看| 日韩欧美国产成人一区二区| 日韩免费va| 国产精品69久久| 免费一区视频| 欧美一区二区精品在线| 精品亚洲自拍| 欧美精品电影在线| 欧美日韩久久| 51成人做爰www免费看网站| 天天操天天色综合| 在线观看美女网站大全免费| 亚洲精品国产品国语在线| 欧美黄页免费| 成人精品视频在线| 亚洲精品孕妇| 成年人看的毛片| 亚洲综合免费观看高清在线观看| 麻豆影视在线观看_| 久久久av一区| 黄色欧美成人| 日韩在线一级片| 91久久久免费一区二区| sese综合| 92看片淫黄大片看国产片| 国产成人av福利| 奇米影视888狠狠狠777不卡| 国产偷国产偷亚洲清高网站| 台湾色综合娱乐中文网| 日韩av电影在线观看| 国产精品成人在线观看| 国产盗摄在线视频网站| 欧美最猛性xxxxx(亚洲精品)| 日韩精品成人一区二区在线| 污视频免费在线观看网站| 日韩精品中午字幕| 精品免费av| 中国丰满人妻videoshd| 欧美蜜桃一区二区三区| 欧美国产不卡| 国产乱人伦精品一区二区三区| 欧美午夜精品久久久久久浪潮 | 国产精品免费丝袜| 国产不卡一区| 97超碰资源站在线观看| 超碰免费在线| 国产免费av高清在线| 黄色三级高清在线播放| 国产精品久久久久影院日本| 欧美日韩成人在线| 日韩国产精品久久久| 无码人妻丰满熟妇区96| 欧美激情综合色| 久久久久久黄| 第一福利在线| 日韩精品一区二区三区色偷偷 | 亚洲高清福利| 久久精品国产久精国产思思| 一二三区精品福利视频| 久久综合影视| 91在线视频免费91| 亚洲在线免费播放| 中文字幕精品综合| 亚洲欧美日韩国产综合| 91丨九色丨蝌蚪丨老版| 99久久久久久中文字幕一区| 啊啊啊啊啊啊啊视频在线播放| 96pao国产成视频永久免费| 在线一区二区三区做爰视频网站| 狠狠色综合色综合网络| 99成人超碰| 偷拍25位美女撒尿视频在线观看| 久久久久久久有限公司| 日韩中文字幕视频| 精品久久久久久久中文字幕 | 久久99国产精品成人| 亚洲最新色图| av在线天堂播放| 嫩草影院中文字幕| 亚洲永久免费观看| 国产精品福利小视频| 中文字幕无线精品亚洲乱码一区 | 精品久久久一区二区| 精品丝袜久久| 999视频在线免费观看| 少妇高潮久久久久久潘金莲| 黄色一区二区三区| 中文字幕中文字幕一区| 精品福利一区| 福利在线视频网站| 国产精品99久久99久久久| 毛片av免费在线观看| 玖玖精品在线视频| 久久久精品有限公司| 国产在线98福利播放视频| 国产精品主播视频| 国产精品视频入口| 国产一区二区在线网站| 亚洲精品色婷婷福利天堂| 这里只有精品丝袜| 日韩高清欧美高清| 日韩美女主播在线视频一区二区三区| 韩国在线一区| 国产青青草在线| 国产麻豆一区二区三区在线观看| 欧美日韩一区二区在线观看| 男女精品视频| 欧美男人天堂| 国产又黄又大又粗视频| 久久久久久久爱| 亚洲线精品一区二区三区八戒| 伊人青青综合网| 污视频网站在线免费| 女人床在线观看| 欧美激情奇米色| 亚洲国产精品久久久久秋霞影院| 欧美激情aⅴ一区二区三区| www免费视频观看在线| www.男人天堂网| 欧美激情2020午夜免费观看| 亚洲影视资源网| 亚洲少妇在线| 台湾佬成人网| 亚洲jizzjizz妇女| 亚洲japanese制服美女| 欧美刺激午夜性久久久久久久| 国产v综合v亚洲欧| 国产精品中文字幕制服诱惑| 免费国产在线观看| 一区不卡字幕| 久久久久久久久91| 欧美在线观看一区二区| 国产一区二区女| 中文字幕中文字幕精品| 69xxx在线| 国产区二区三区| 国产视频不卡| 日韩亚洲精品电影| 欧美日韩免费一区| 国产一区二区剧情av在线| 天堂成人娱乐在线视频免费播放网站 | 欧美精品 日韩| 成人免费电影视频| 日韩欧美综合| 成人免费图片免费观看| 国产三级三级看三级| 精品一区二区三区国产| yellow中文字幕久久| 在线观看日韩高清av| 久久一夜天堂av一区二区三区| 18成人免费观看视频| 国产精品99久久免费观看|