日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用BeautifulSoup爬虫

發布時間:2025/4/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用BeautifulSoup爬虫 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

爬蟲剛入門,用BeautifulSoup來練手。

本篇文章前提是安裝好了BeautifulSoup、requests模塊,還需要內置的os模塊。

爬取的網址為:http://www.itcast.cn/channel/teacher.shtml#ajavaee

?

  • 首先,載入模塊 import requests from bs4 import BeautifulSoup import os
  • 然后就是基本的爬取操作:

    ul = 'http://www.itcast.cn/channel/teacher.shtml#ajavaee' html = requests.get(ul).text main_url = 'http://www.itcast.cn' # print(html) soup = BeautifulSoup(html, 'lxml') img_ul = soup.find_all('div', {'class': 'li_img'})

    這里要注意一點,得到的img_ul類型是ResultSet,意思是標簽,并不是正兒八經的字符串。有興趣的朋友可以print一下或者debug看看結果。

    需要 注意的是,因為分析網頁的時候發現,圖片網址和當前網頁的網址不完全相同,故增加了一個main_url,以備下面的讀取圖片網址用。

  • 此時,網頁已經變成了一碗美味的“湯汁”。右鍵圖片審查元素可得到圖片的對應的代碼:

    審查網頁

    ?

  • 可以看到圖片的網頁并不是設置的“ul”,正好解釋了第二步。接著創建一個文件夾準備“收貨”。

    os.makedirs('./傳播智客/', exist_ok=True) # 在當前程序的文件夾下創建一個“傳播智客”的文件夾

    關于os的用法,可以參考各種基礎教程。

  • 因為這碗湯里啥都有,想吃的肉還得自己找。所以下一步就是找到圖片網址對應的代碼:

    for ul in img_ul:imgs = ul.find_all('img')# print(imgs)for img in imgs:url = img['data-original']img_name = url.split('/')[-1]req = requests.get(main_url+url, stream=True)with open('./傳播智客/%s' % img_name, 'wb') as f:for chunk in req.iter_content(chunk_size=128):f.write(chunk)print('Saved %s' % img_name)

    那么提取里面的內容就需要用到關鍵字標簽,如上代碼所示。

    本來打算用正則表達式“re.findall(xxxx)”提取網址,結果報錯了。所以就沒用到re模塊。

  • with open('./傳播智客/%s' % img_name, 'wb') as f:for chunk in req.iter_content(chunk_size=128):f.write(chunk)

    這一段是跟??莫煩?學的。普通方法就是把所有的圖片下載到內存里,再一個個存到電腦的硬盤上。對于少量的數據還可行,對于本例子也可行,但想想如果要爬一個20G 的視頻呢?內存恐怕要被撐爆。這種方法說白了就是邊下邊存,本例子中,下載滿128byte即存到硬盤上,然后再下再存。chunk_size=xx即定義了滿多少字節存一次。

  • 結果:

  • 完整版代碼:

    import requests from bs4 import BeautifulSoup import osul = 'http://www.itcast.cn/channel/teacher.shtml#ajavaee' html = requests.get(ul).text main_url = 'http://www.itcast.cn' # print(html) soup = BeautifulSoup(html, 'lxml') img_ul = soup.find_all('div', {'class': 'li_img'})os.makedirs('./傳播智客/', exist_ok=True)for ul in img_ul:imgs = ul.find_all('img')# print(imgs)for img in imgs:url = img['data-original']img_name = url.split('/')[-1]req = requests.get(main_url+url, stream=True)with open('./傳播智客/%s' % img_name, 'wb') as f:for chunk in req.iter_content(chunk_size=128):f.write(chunk)print('Saved %s' % img_name)

    ?

  • 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的使用BeautifulSoup爬虫的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。