1. 程式人生 > >【Python爬蟲系列】使用requests爬取圖片

【Python爬蟲系列】使用requests爬取圖片

Python3常用的爬蟲第三方外掛有requests,urllib.request等。這裡主要介紹使用requests抓取網頁上的圖片,該方法只針對靜態網頁,不考慮js動態載入的網頁。

預備知識:

  • requests模組的基本瞭解,包括get,post等方法和status_code,history等屬性。
  • 熟練使用BeautifulSoup(美麗湯)進行文字定位、篩選,常用方法有find_all,select等。
  • 基本的檔案流操作,如資料夾是否存在的判斷,新建資料夾等。
  • requests的write下載圖片操作

操作開始:

這裡以筆趣閣(http://www.biquzi.com/)為例,抓取網頁上的小說封面。

抓圖的基本流程就是

requests傳送網頁請求 --> 使用get獲取response --> 利用BeautifulSoup對response進行文字篩選,抓取圖片連結 ---> 新建一個圖片存放的資料夾 ---> urlretrieve下載圖片到資料夾


F12分析網頁結構


圖片定位到的文字資訊類似於上圖紅框所示:

<img src="http://www.biquzi.com/files/article/image/0/703/703s.jpg" alt="鬥戰狂潮" width="120" height="150"> == $0

我們只關心圖片連結資訊(標紅部分),其他的資訊都要過濾掉。

下面上具體程式碼

import requests
import urllib.request
from bs4 import BeautifulSoup
import os
import time

url  = 'http://www.biquzi.com/'
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get(url, headers=headers)  # 使用headers避免訪問受限
soup = BeautifulSoup(response.content, 'html.parser')
items = soup.find_all('img')
folder_path = './photo/'
if os.path.exists(folder_path) == False:  # 判斷資料夾是否已經存在
    os.makedirs(folder_path)  # 建立資料夾

for index,item in enumerate(items):
	if item:		
		html = requests.get(item.get('src'))   # get函式獲取圖片連結地址,requests傳送訪問請求
		img_name = folder_path + str(index + 1) +'.png'
		with open(img_name, 'wb') as file:  # 以byte形式將圖片資料寫入
			file.write(html.content)
			file.flush()
		file.close()  # 關閉檔案
		print('第%d張圖片下載完成' %(index+1))
		time.sleep(1)  # 自定義延時
print('抓取完成')

最後執行成功的結果


相關推薦

Python爬蟲系列使用requests圖片

Python3常用的爬蟲第三方外掛有requests,urllib.request等。這裡主要介紹使用requests抓取網頁上的圖片,該方法只針對靜態網頁,不考慮js動態載入的網頁。 預備知識: requests模組的基本瞭解,包括get,post等方法和status_

Python爬蟲系列 - 初探:旅遊評論

blank .text http fir win64 ati coo get stat Python爬蟲目前是基於requests包,下面是該包的文檔,查一些資料還是比較方便。 http://docs.python-requests.org/en/master/ 爬取某旅遊

Python爬蟲系列 - 初探:新聞推送

http nec apple 下標 for pri Language span round Get發送內容格式 Get方式主要需要發送headers、url、cookies、params等部分的內容。 t = requests.get(url, headers = hea

python爬蟲--re結合xpath圖片

背景:虛擬機器ubuntu16.04利用xpath與爬取www.uumnt.cc/圖片當然,我們要爬取的是動物板塊!程式分析,將動物板塊一頁一頁分析拿取出來,然後拿去各種動物頁面的連結,然後對連結分析拿取圖片(每個連結拿取4張圖)效果為:原始碼如下: 1 # -*- cod

scrapy爬蟲系列之三--圖片保存到本地及日誌的基本用法

用法 request 讀取配置 turn 重寫方法 沒有 elf sel jpg 功能點:如何爬取圖片,並保存到本地 爬取網站:鬥魚主播 完整代碼:https://files.cnblogs.com/files/bookwed/Douyu.zip 主要代碼: dou

Python爬蟲之利用BeautifulSoup豆瓣小說(三)——將小說信息寫入文件

設置 one 行為 blog 應該 += html uil rate 1 #-*-coding:utf-8-*- 2 import urllib2 3 from bs4 import BeautifulSoup 4 5 class dbxs: 6 7

Python 爬蟲簡單實現 (下載連結)

原文地址:https://www.jianshu.com/p/8fb5bc33c78e 專案地址:https://github.com/Kulbear/All-IT-eBooks-Spider 這幾日和朋友搜尋東西的

Python爬蟲錯誤ConnectionResetError: [WinError 10054] 遠端主機強迫關閉了一個現有的連線

轉載連結:https://blog.csdn.net/illegalname/article/details/77164521 今天寫爬蟲爬取天天基金網站(http://fund.eastmoney.com/)時出現如下圖所示的錯誤。 分析原因,是因為使用urlopen方法太過頻繁,引起遠

Python 爬蟲技巧1 | 將網頁中的相對路徑轉換為絕對路徑

1.背景: 在爬取網頁中的過程中,我對目前爬蟲專案後端指令碼中拼接得到絕對路徑的方法很不滿意,今天很無意瞭解到在python3 的 urllib.parse模組對這個問題有著非常完善的解決策略,真的是上天有眼,感動! 2.urllib.parse模組 This module define

python爬蟲——40行程式碼「筆趣看」全部小說 你都看了嗎?

需求分析 ”筆趣看“ 是一個盜版小說網站,這裡有各大知名小說網站的小說,更新速度略慢於正版網站。但是該網站只支援線上瀏覽,不支援小說下載,對於想要下載下來以防斷網或者網速不好時也能看的童鞋來說不太友好。因此,本次練習將爬取該網站所有小說。PS:本次練習僅為學習交流,請各位童鞋支援正版。 爬取

python爬蟲的入門02------圖片、異常處理

一、爬取一張圖片 import urllib.request req = 'http://placekitten.com/400/400' # url地址 response = urllib.request.urlopen(req) #用檔案形式來開啟url地址對應的HTML頁

Python爬蟲實例:B站《工作細胞》短評——異步加載信息的

localtime pre global web for short sco 網頁解析 save 《工作細胞》最近比較火,bilibili 上目前的短評已經有17000多條。 先看分析下頁面 右邊 li 標簽中的就是短評信息,一共20條。一般我們加載大量數據的時候,都

python 使用selenium和requests頁面資料

目的:獲取某網站某使用者下市場大於1000秒的視訊資訊 1.本想通過介面獲得結果,但是使用post傳送資訊到介面,提示服務端錯誤。 2.通過requests獲取頁面結果,使用html解析工具,發現麻煩而且得不到想要的結果 3.直接通過selenium獲取控制元件的屬性資訊,如圖片、視訊地址,再對時間進行篩選

python 使用selenium和requests頁面數據

ret pre tex 爬取 test user 發現 rom request 目的:獲取某網站某用戶下市場大於1000秒的視頻信息 1.本想通過接口獲得結果,但是使用post發送信息到接口,提示服務端錯誤。 2.通過requests獲取頁面結果,使用html解析工具,發現

一個月入門Python爬蟲學習,輕鬆大規模資料

利用爬蟲我們可以獲取大量的價值資料,從而獲得感性認識中不能得到的資訊,這篇文章給大家帶來了一個月入門Python學習,爬蟲輕鬆爬取大規模資料,感興趣的朋友一起看看吧 資料獲取方式:Python技術學習QQ群832339352 新增即可免費獲取! Python爬蟲為

Python爬蟲框架:Scrapy 伯樂線上實戰

專案介紹 使用Scrapy框架進行爬取伯樂線上的所有技術文章 所用知識點 Scrapy專案的建立 Scrapy框架Shell命令的使用 Scrapy自帶的圖片下載管道 Scrapy自定義圖片下載管道(繼承自帶的管道) Scrapy框架ItemLoader

python爬蟲基礎圖片自動下載器

製作爬蟲的基本步驟 順便通過這個小例子,可以掌握一些有關製作爬蟲的基本的步驟。 一般來說,製作一個爬蟲需要分以下幾個步驟: 分析需求(對,需求分析非常重要,不要告訴我你老師沒教你) 分析網頁原始碼,配合F12(沒有F12那麼亂的網頁原始碼,你想看死我?) 編

python 爬蟲 使用正則51job內容並存入txt

python爬蟲基礎–使用正則提取51job內容輸出到txt from urllib import request #url url = 'https://search.51job.com/list/020000%252C010000%252C080200%25

Python爬蟲實戰獲取2018年重慶智博會參會企業名單,用於市場洞察

【背景】 做市場洞察,經常需要分析某個行業的Top客戶,通常會通過某種活動或某種機構獲取名單。網站上也能收集到,但是手工收集比較麻煩。 下面通過Python網路爬蟲 獲取2018年重慶智博會參會企業的名單來體驗,如何批量獲取目標網頁的名單。 【操作步驟】 1、分析網頁

Python爬蟲6表單互動

嚴格來說,本篇表單互動和下一篇驗證碼處理不算是網路爬蟲,而是廣義上的網路機器人。使用網路機器人可以減少提取資料時需要表單互動的一道門檻。 1.手工處理髮送POST請求提交登入表單 我們先在示例網站手工註冊一個賬號,註冊這個賬號需要驗證碼,下一篇會介紹處理驗證碼