中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中BeautifulSoup庫如何使用

發布時間:2021-06-16 15:55:59 來源:億速云 閱讀:158 作者:Leah 欄目:開發技術

python中BeautifulSoup庫如何使用,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

1、from bs4 import BeautifulSoup

#導入庫

2、請求頭herders

headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36','referer':"www.mmjpg.com" }
all_url = 'http://www.mmjpg.com/' 
'User-Agent':請求方式 
'referer':從哪個鏈接跳轉進來的

3、建立連接

start_html = requests.get(all_url, headers=headers)
all_url:起始的地址,也就是訪問的第一個頁面
headers:請求頭,告訴服務器是誰來了。
requests.get:一個方法能獲取all_url的頁面內容并且返回內容。

4、解析獲取的頁面

Soup = BeautifulSoup(start_html.text, 'lxml')
BeautifulSoup:解析頁面
lxml:解析器
start_html.text:頁面的內容

5、處理獲取的頁面

all_a = Soup.find('div', class_='pic').find_all('a')[-2]
Soup.find()查找某一個
find_all()查找所有的,返回一個列表
.find('img')['src']  :獲取img的src鏈接屬性  
class__:獲取目標的類名
div/a:類型條件為div/a的
[-2]可以用來去掉最后多匹配的標簽,這里表示去掉最后兩個a標簽

6、獲取目標內容

<a href =# >內容</a>
a[i]/get_text():獲取第i個a標簽里面的內容

7、可能用到的其他功能介紹:

1、文件夾創建與切換

os.makedirs(os.path.join("E:\name", filename))
#在目錄E:\name下創建名為filename的文件夾
os.chdir("E:\name\\" + filename)
#切換工作路徑到E:\name\filename下

2、文件保存

f = open(name+'.jpg', 'ab')##寫入多媒體文件必須要 b 這個參數!
f.write(img.content) ##多媒體文件要是用conctent!
f.close()

案例:爬取妹紙圖

  import requests
from bs4 import BeautifulSoup
import os
#導入所需要的模塊
class mzitu():
  def all_url(self, url):
    html = self.request(url)##
    all_a = BeautifulSoup(html.text, 'lxml').find('div', class_='all').find_all('a')
    for a in all_a:
      title = a.get_text()
      print('------開始保存:', title) 
      path = str(title).replace("?", '_') ##替換掉帶有的?
      self.mkdir(path) ##調用mkdir函數創建文件夾!這兒path代表的是標題title
      href = a['href']
      self.html(href) 

  def html(self, href):  ##獲得圖片的頁面地址
    html = self.request(href)
    max_span = BeautifulSoup(html.text, 'lxml').find('div', class_='pagenavi').find_all('span')[-2].get_text()
    #這個上面有提到
    for page in range(1, int(max_span) + 1):
      page_url = href + '/' + str(page)
      self.img(page_url) ##調用img函數

  def img(self, page_url): ##處理圖片頁面地址獲得圖片的實際地址
    img_html = self.request(page_url)
    img_url = BeautifulSoup(img_html.text, 'lxml').find('div', class_='main-image').find('img')['src']
    self.save(img_url)

  def save(self, img_url): ##保存圖片
    name = img_url[-9:-4]
    img = self.request(img_url)
    f = open(name + '.jpg', 'ab')
    f.write(img.content)
    f.close()

  def mkdir(self, path): ##創建文件夾
    path = path.strip()
    isExists = os.path.exists(os.path.join("E:\mzitu2", path))
    if not isExists:
      print('建了一個名字叫做', path, '的文件夾!')
      os.makedirs(os.path.join("E:\mzitu2", path))
      os.chdir(os.path.join("E:\mzitu2", path)) ##切換到目錄
      return True
    else:
      print( path, '文件夾已經存在了!')
      return False

  def request(self, url): ##這個函數獲取網頁的response 然后返回
    headers = {
      'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36',
      'referer':#偽造一個訪問來源 "http://www.mzitu.com/100260/2"
    }
    content = requests.get(url, headers=headers)
    return content
#設置啟動函數
def main():
  Mzitu = mzitu() ##實例化
  Mzitu.all_url('http://www.mzitu.com/all') ##給函數all_url傳入參數 

main()

看完上述內容,你們掌握python中BeautifulSoup庫如何使用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌兰察布市| 平潭县| 罗甸县| 平乡县| 临海市| 蛟河市| 博客| 萨嘎县| 都江堰市| 寿光市| 东莞市| 兴和县| 横山县| 赣州市| 山阳县| 调兵山市| 江孜县| 达拉特旗| 广州市| 三原县| 荔浦县| 扶风县| 襄汾县| 包头市| 五常市| 乌拉特前旗| 大悟县| 南阳市| 沙洋县| 寿光市| 贺州市| 东山县| 宁晋县| 芷江| 油尖旺区| 姚安县| 平江县| 洮南市| 尉犁县| 桃江县| 石柱|