爬蟲入門之beautifulsoup(一)

2021-09-26 10:34:02 字數 1627 閱讀 6223

近期需要爬取足彩資訊,因為需求比較特殊,所以準備自己爬資料。

一開始學了乙個非常簡單的爬蟲例子,主要用到了beautifulsoup和requests

from bs4 import beautifulsoup

import requests

import lxml

url = ''

response = requests.get(url)

ans = response.content.decode('utf-8')

# print(response.content.decode('utf-8'))

soup = beautifulsoup(ans,'lxml')

# print(soup)

all_movie = soup.find('div',id = "showing-soon")

for each_movie in all_movie.find_all('div',class_='item'):

movie_name = each_movie.find_all('a')[1].text

print(movie_name)

用著幾行**先爬了豆瓣的電影資料。

但是,這畢竟是入門,我需要爬取的是多個網頁,乙個乙個**輸入是不行的,所以還是準備從基礎的爬蟲開始試著學一下,如果進度太慢,我就直接用for迴圈加上述的簡單**嘗試爬取資料。

這裡主要是直接用beautifulsoup這個庫,聽說這個庫對於爬蟲初學者非常友好並且簡潔。官方文件的**:

是有中文文件的。

文件開頭介紹物件的內容比較簡單,直接從遍歷文件樹這個部分開始學習。

1. 由於beautifulsoup的優勢是簡潔,不太需要像其他框架那樣嚴謹的正則化。它自帶了tag以及tag的樹型資料結構。

對於html格式的內容,可以通過.的操作直接獲取,如soup.head即可回去內容的head。

特別地,「.」操作能夠跳級獲取內容。如果在head的tag下還有乙個title的tag,完全可以直接soup.title獲取。

2. 我們說tag是beautifulsoup的乙個物件屬性,但是對於正兒八經的html格式內容,會有真正的「標籤」。這些標籤裡的內容往往是我們真正需要的詳細內容,如果需要獲取真正標籤內的內容,我們需要用到find_all()方法。

soup.find_all('a')    #獲取了所有a標籤內的內容

3. contents和.childen操作

print(soup.head.contentas)

#[******x]

而.childen也是我很喜歡的,它能夠直接列舉出所有的子節點,多用於for迴圈中。

與之相近的是.descendants,這個屬性不僅能夠列舉出子節點,還能把子節點的節點都全部列舉。

4. string屬性

我認為這個屬性比較多餘,他的意思就是如果該節點僅僅只有乙個子節點,那麼就輸出這個節點,完全可以用.contents直接取代他。

學到這裡我大致看了一下剩下的官方文件,其實可以用到的時候直接看,那麼我的問題還是沒有得到解決:

我需要的是多個網頁跳轉爬取資訊,這個beautifulsoup說來說去都是在解析html內容的,那麼這個部分可以先擱置,實戰中彌補,那麼回到專案流程,我接下來需要解決的是網頁跳轉。

python 網路爬蟲 beautifulsoup

1.安裝beautifulsoup 2.使用beautifulsoup快速建立 格式 from bs4 import beautifulsoup html 名字 年齡 性別 地點小一 28 北京 soup beatifulsoup html print soup.prettify 3.使用beaut...

從零開始學網路爬蟲之BeautifulSoap

之前我們介紹了正規表示式,可能有的小夥伴也對寫正規表示式的用法還不夠熟練,沒關係,我們還有乙個更強大的工具,叫beautiful soup,它可以與requests配合使用,在獲得網頁原始碼後進行分析,實在是很方便。這一節就讓我們一就一起來學習一下beautiful soup。beautiful s...

爬蟲處理資料的方式(三)BeautifulSoup

使用beautifulsoup提取資料 from bs4 import beautifulsoup html html soup beautifulsoup html,lxml 建立乙個物件,接受html和解析方式 soup.a 拿到a標籤所有的內容,包括 soup.a.string 拿到a標籤裡面...