python3爬取網頁圖片

爬蟲思路html

1、肯定要爬取的頁面——肯定目標
1.打開含有圖片的網頁
2.打開頁面代碼:右鍵——>查看源代碼
2、分析網頁內容
1.url路徑格式
2.數據格式(常見 html文檔 格式)
3.網頁數據編碼格式(常見 utf-8)
3、代碼實現、運行、修改網絡

代碼實現編碼

1、請求網頁(網頁地址 url)url

1.導入網絡請求庫:import requestsspa

2.請求網頁地址:response = requests.get(url)3d

3.檢查是否請求成功(兩種方法):xml

  • 打印輸出網頁的全部數據:print(response.text)
  • 打印 返回 請求狀態碼:print(response.raise_for_satus())——None表示請求成功

2、解析文檔樹htm

1.導入Beautiful Soup庫import bs4blog

  • Beautiful Soup 是一個能夠從HTML或XML文件中提取數據的Python庫,解析分析網頁數據,提取想要的數據
  • html_parser:bs4自帶的解析器
  • lxml:須要下載安裝的解析器

2.遍歷文檔樹,解析搜索數據soup = bs4.BeautifulSoup(response.text,'html_parser')圖片

3.找到要爬取的數據節點(圖片節點)image_urls = soup.select(".image-list-link img")

4.判斷當前節點下是否有圖片;若是有,提取全部‘src’,全部圖片存儲路徑download_url :

  • if not image_url in image_urls

    print("當前節點下,沒圖片!")

  • else

    for image_url in image_urls:

      download_url = image_url.get('src')

      print("下載圖片的路徑:", download_url)

3、存儲爬取的數據

     1.導入處理文檔的庫import os

     2.找到分割點,剔除路徑,提取圖片名稱 file_name

      split = download_url.split('/')

      file_name = os.path.basename(split[len(split)-1])

      print("元素:", file_name)

     3.構建本地保存,存儲圖片的文件夾 image

      dir_name = 'image'

      os.makedirs(dir_name,exist_ok=True)

     4.返回完整的文件本地存儲路徑 file_path 

      file_path = os.path.join(dir_name, file_name)

      print("file_path:",file_path)

     5.檢查當前圖片路徑是否存在,不存在就請求網上圖片的地址,並將圖片存儲到本地路徑中

      if not os.path.exists(file_path):

      image_url_path = requests.get("https:" + download_url)

     6.檢查當前網址是否請求成功,兩種方法:1.print,輸出<Response [200]>表示請求成功;2.status狀態碼,輸出None

      print("請求", image_url_path)

      image_url_path.raise_for_status()

     7.打開文件夾中的文件(file_path);"wb"二進制讀寫模式

      image_file = open(file_path,"wb")

     8.存儲每一張圖片,獲取網頁中N個值(隨意指定要獲取的數目N,這裏N=1000)

      for images in image_url_path.iter_content(1000):

       9.把每次遍歷的文件,所有寫入文件中

        image_file.write(images)

       10.io流,在用完數據後,關閉數據流資源

        image_file.close()

相關文章
相關標籤/搜索