AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

文本抓取利器,Python和Beautiful Soup爬蟲助你事半功倍

來源: 責編: 時間:2023-12-09 15:21:57 292觀看
導讀一、簡介網絡爬蟲是一項非常搶手的技能。收集、分析和清洗數據是數據科學項目中最重要的部分。今天介紹如何從鏈接中爬取高質量文本內容,我們使用迭代,從大約700個鏈接中進行網絡爬取。如果想直接跳轉到代碼部分,可以在

一、簡介

網絡爬蟲是一項非常搶手的技能。收集、分析和清洗數據是數據科學項目中最重要的部分。vJ428資訊網——每日最新資訊28at.com

今天介紹如何從鏈接中爬取高質量文本內容,我們使用迭代,從大約700個鏈接中進行網絡爬取。vJ428資訊網——每日最新資訊28at.com

如果想直接跳轉到代碼部分,可以在下方鏈接GitHub倉庫中找到,同時還會找到一個包含將爬取的700個鏈接的.csv數據集!vJ428資訊網——每日最新資訊28at.com

【GitHub】:https://github.com/StefanSilver3/MediumArticlesCode-byStefanSilver/tree/main/WebScrapingvJ428資訊網——每日最新資訊28at.com

二、從單個鏈接進行網頁抓取

首先,導入所需的庫。vJ428資訊網——每日最新資訊28at.com

from bs4 import BeautifulSoupimport requestsfrom bs4.element import Commentimport urllib.request

如果還沒有安裝BeautifulSoup庫,可以直接在Python代碼中這樣做。vJ428資訊網——每日最新資訊28at.com

pip install beautifulsoup4

然后,開始編碼。這里定義兩個函數,一個用于檢查要排除的內容,另一個用于從網站上爬取內容。vJ428資訊網——每日最新資訊28at.com

第一個函數用于查找要排除的元素,代碼如下。vJ428資訊網——每日最新資訊28at.com

# 要從提取的文本中過濾的標簽def tag_visible(element):    if element.parent.name in ['style', 'script', 'head', 'title', 'meta', '[document]']:        return False    if isinstance(element, Comment):        return False    return True

第二個函數將使用這個函數,以確保所有的無用內容都從最終結果中排除,代碼如下。vJ428資訊網——每日最新資訊28at.com

# 從網頁文本中過濾前一個函數中提到的所有標簽的函數def text_from_html(body):    soup = BeautifulSoup(body, 'html.parser')    texts = soup.findAll(string=True)    visible_texts = filter(tag_visible, texts)      return u" ".join(t.strip() for t in visible_texts)

接著,可以在一個新鏈接上測試這兩個函數。你可以放置任意鏈接,不需要使用下面的鏈接。vJ428資訊網——每日最新資訊28at.com

html = urllib.request.urlopen('https://www.artificialintelligence-news.com/2023/11/20/microsoft-recruits-former-openai-ceo-sam-altman-co-founder-greg-brockman/').read()print(text_from_html(html))

網絡爬取的內容將會像下面的文本一樣。vJ428資訊網——每日最新資訊28at.com

圖片圖片vJ428資訊網——每日最新資訊28at.com

截圖1:爬取的網站——隨機鏈接vJ428資訊網——每日最新資訊28at.com

注意,一些網站會檢測到網絡爬取活動,并阻止網絡爬取嘗試。如果發生這種情況,將收到一個403錯誤,這是“禁止”的代碼。vJ428資訊網——每日最新資訊28at.com

三、同時爬取多個鏈接

測試了簡單的提取函數,接下來對提供的鏈接數據集的所有鏈接進行迭代提取。vJ428資訊網——每日最新資訊28at.com

首先,確保獲取了在GitHub倉庫中找到的數據集。然后,讀取數據集并將列名更改為Link,原本的列名是max(page)。vJ428資訊網——每日最新資訊28at.com

df = pd.read_csv("furniture_stores_pages.csv")df.rename(columns={"max(page)":"Link"}, inplace=1)

現在,創建一個以0為起始值的變量x,它將在列表中的每個鏈接上進行迭代。當然元素變量也可以使用。vJ428資訊網——每日最新資訊28at.com

x=0df_cnotallow=[]for element in df.iterrows():    try:        url = df["Link"][x]        scraped_text = urllib.request.urlopen(url).read()        df_contents.append(text_from_html(scraped_text))        x=x+1    except:        print("(",x,")","This website could not be scraped-> ",df["Link"][x])        x=x+1

然后,定義一個名為df_contents的列表,它將包含從每個網頁中提取的所有可以爬取的文本。vJ428資訊網——每日最新資訊28at.com

接下來,遍歷每個元素,如果可以訪問且包含相關數據,就從中提取信息。這只是對隨機鏈接進行上述測試,但測試的對象是提供的數據集中的所有鏈接。vJ428資訊網——每日最新資訊28at.com

代碼中還使用了try-except對無法提取的鏈接進行跳過。vJ428資訊網——每日最新資訊28at.com

現在,檢查新列表(df_contents)的長度,查看提取了多少鏈接。vJ428資訊網——每日最新資訊28at.com

len(df_contents)

這個函數返回268,這意味著在700多個網站中只有268個爬取成功。然后,可以使用下面的代碼訪問并打印第一個被爬取的網站。vJ428資訊網——每日最新資訊28at.com

df_contents[0]

這將打印第一個文本,示例如下所示(簡短版本):vJ428資訊網——每日最新資訊28at.com

圖片圖片vJ428資訊網——每日最新資訊28at.com

截圖2:從數據集中爬取的網站vJ428資訊網——每日最新資訊28at.com

如果需要的話,也可以使用下面的代碼反復打印。每打印完一個元素后,都需要輸入任意字符以繼續,這樣就可以逐一檢查每個提取的網站。vJ428資訊網——每日最新資訊28at.com

count = 0for element in df_contents:    print(df_contents[count])    print("/n /n---------------------------------------------------------------------------------------- /n /n")        print("Press any key to continue to print df_contents [",count+1,"]")    input()    count= count+1

本文鏈接:http://www.tebozhan.com/showinfo-26-40655-0.html文本抓取利器,Python和Beautiful Soup爬蟲助你事半功倍

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 微軟:VS Code已成為Java巨頭!

下一篇: Java高并發詳解,死鎖的成因與解決方法

標簽:
  • 熱門焦點
  • 6月iOS設備好評榜:第一蟬聯榜首近一年

    作為安兔兔各種榜單里變化最小的那個,2023年6月的iOS好評榜和上個月相比沒有任何排名上的變化,僅僅是部分設備好評率的下降,長年累月的用戶評價和逐漸退出市場的老款機器讓這
  • 跑分安卓第一!Redmi K60至尊版8月發布!盧偉冰:目標年度性能之王

    8月5日消息,Redmi K60至尊版將于8月發布,在此前舉行的戰略發布會上,官方該機將搭載搭載天璣9200+處理器,安兔兔V10跑分超177萬分,是目前安卓陣營最高的分數
  • 印度登月最關鍵一步!月船三號今晚進入環月軌道

    8月5日消息,據印度官方消息,月船三號將于北京時間今晚21時30分左右開始近月制動進入環月軌道。這是該探測器能夠成功的最關鍵步驟之一,如果成功將開始圍
  • Flowable工作流引擎的科普與實踐

    一.引言當我們在日常工作和業務中需要進行各種審批流程時,可能會面臨一系列技術和業務上的挑戰。手動處理這些審批流程可能會導致開發成本的增加以及業務復雜度的上升。在這
  • JavaScript學習 -AES加密算法

    引言在當今數字化時代,前端應用程序扮演著重要角色,用戶的敏感數據經常在前端進行加密和解密操作。然而,這樣的操作在網絡傳輸和存儲中可能會受到惡意攻擊的威脅。為了確保數據
  • 拼多多APP上線本地生活入口,群雄逐鹿萬億市場

    Tech星球(微信ID:tech618)文 | 陳橋輝 Tech星球獨家獲悉,拼多多在其APP內上線了“本地生活”入口,位置較深,位于首頁的“充值中心”內,目前主要售賣美食相關的
  • 東方甄選單飛:有些鳥注定是關不住的

    文/彭寬鴻編輯/羅卿東方甄選創始人俞敏洪帶隊的“7天甘肅行”直播活動已在近日順利收官。成立后一年多時間里,東方甄選要脫離抖音自立門戶的傳聞不絕于耳,“7
  • 朋友圈可以修改可見范圍了 蘋果用戶可率先體驗

    近日,iOS用戶迎來微信8.0.27正式版更新,除了可更換二維碼背景外,還新增了多項實用功能。在新版微信中,朋友圈終于可以修改可見范圍,簡單來說就是已發布的朋友圈
  • 親歷馬斯克血洗Twitter,硅谷的苦日子在后頭

    文/劉哲銘  編輯/李薇  馬斯克再次揮下裁員大刀?! ∶绹鴷r間11月14日,Twitter約4400名外包員工遭解雇,此次被解雇的員工的主要工作為內容審核等。此前,T
Top