1. 程式人生 > >[Python][爬蟲03]requests+BeautifulSoup例項:抓取圖片並儲存

[Python][爬蟲03]requests+BeautifulSoup例項:抓取圖片並儲存

    上一篇中,安裝和初步使用了requests+BeautifulSoup,感受到了它們的便捷。但之前我們抓取的都是文字資訊,這次我們準備來抓取的是圖片資訊。

>第一個例項

    首先,審查網頁元素:


    因此其結構就為:

<div class='il_img'> x 若干個,對每個div有 :
    <img src='我們要的img src資料'>

    整體思路是:

  • 獲取每個圖片的src地址;
  • 構建requests去請求img的src並獲取圖片;
  • 寫入檔案

    程式碼如下:

import requests
from bs4 import BeautifulSoup
pic_id = 0  # 圖片編號
url = 'http://www.ivsky.com/bizhi/stand_by_me_doraemon_v45983/'
bs = BeautifulSoup(requests.get(url).content, "lxml")  # 呼叫lxml作為解析引擎 需要:pip install lxml
for i in bs.select('.il_img'):
    pic_url = i.find('img')['src']
    pic_file = open('./pic_'+str(pic_id)+'.jpg', 'wb')  # 二進位制建立並寫入檔案
    pic_file.write(requests.get(pic_url).content)  # 寫出請求得到的img資源
    pic_id += 1

    這樣,就能在爬蟲指令碼目錄下找到我們需要的圖片了:


>第二個例項

    這次我們來抓取這個網站的資源,要的是獎章圖示+獎章等級+等級標誌顏色+稱號,並按照'等級+標誌顏色+稱號.gif'的方式儲存:


    結構為:

<table>
    <td>
        <img> img-src
    <td> 等級
    <td> 顏色
    <td> 稱號

    同樣,也就可以給出相關的程式碼了:

import re
import requests
from bs4 import BeautifulSoup
url = 'http://ol.kuai8.com/gonglue/236751_all.html'
bs = BeautifulSoup(requests.get(url).content, "lxml")
for table in bs.find_all('table', attrs={'border': 1, 'align': 'center'}):  # 獲取所有的資料表
    for td in table.find_all(td_with_img): # 獲取含有img標籤的td標籤
        img_src = td.img['src'] # 獲取圖片url
        level = td.find_next_sibling('td')  # 等級td節點
        color = level.find_next_sibling('td') # 顏色td節點
        title = color.find_next_sibling('td')  # 稱號td節點
        opf = open(get_title(level.string, color.string, title.string), 'wb')
        opf.write(requests.get(img_src).content)
        print '已抓取:', re.sub('\s', '', level.string)

    這裡用了兩個方法:

def td_with_img(node):
    return node.name == 'td' and node.img is not None  # 含有img標籤的td標籤 
def get_title(level, color, title):
    return './ppt/'+re.sub('\s', '', level)+re.sub('\s', '', color)+re.sub('\s', '', title)+'.gif' # 移除空白並直接得到檔名

    我們的成果:


相關推薦

[Python][爬蟲03]requests+BeautifulSoup例項:圖片儲存

    上一篇中,安裝和初步使用了requests+BeautifulSoup,感受到了它們的便捷。但之前我們抓取的都是文字資訊,這次我們準備來抓取的是圖片資訊。 >第一個例項     首先,審查網頁元素:     因此其結構就為: <di

Python爬蟲實戰 requests+beautifulsoup+ajax 爬半次元Top100的cos美圖

1.Python版本以及庫說明 Python3.7.1 Python版本urlencode 可將字串以URL編碼,用於編碼處理bs4 解析html的利器re 正則表示式,用於查詢頁面的一些特定內容requests 得到網頁html、jpg等資源的

Python爬蟲requests+Beautifulsoup存入資料庫

本次記錄使用requests+Beautiful+pymysql的方法將大學排名的資料存入本地MySQL資料庫。 這是一篇學習性文章,希望能夠分享在學習過程中遇到的坑與學到的新技術,試圖用最簡單的話來闡述我所記錄的Python爬蟲筆記。 一、爬取結果

python爬蟲之利用scrapy框架新浪天氣資料

scrapy中文官方文件:點選開啟連結Scrapy是Python開發的一個快速、高層次的螢幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的資料。Scrapy用途廣泛,可以用於資料探勘、監測和自動化測試,Scrapy吸引人的地方在於它是一個框架,任何人都可以根據

Python爬蟲實戰:使用SeleniumQQ空間好友說說

前面我們接觸到的,都是使用requests+BeautifulSoup組合對靜態網頁進行請求和資料解析,若是JS生成的內容,也介紹了通過尋找API藉口來獲取資料。 但是有的時候,網頁資料由JS生成,API藉口又死活找不著或者是API藉口地址隨機變換,時間不等人

Python爬蟲實戰(1)——百度貼吧帖子儲存內容和圖片

最近在網上看了很多的爬蟲指令碼,寫的參差不齊,但是其中有很多寫的非常的優秀,程式碼質量很高,規範性也很好,很具有代表性,非常值得我們去學習!~ 寫好一個python爬蟲需要有以下幾個必備條件: 1、足夠好的程式碼規範(等號前後加空格、逗號後加空格等等),結構性封裝性好,重

python爬蟲學習之起點小說

info 心得 圖片 請求頭 http path req strong 修改 爬蟲學習的一點心得 任務:抓取某小說網站小說並下載 抓取:selenium 解析:xpath,正則表達式 遇到的問題: 1.用requests抓取的時候,無論如何修改請求頭,抓取的源代碼

java演算法-網路爬蟲網頁儲存

從一個URL中讀取網頁,如果是同一個網站的就儲存,URL裡面包含URL列表,繼續抓取,抓完全部 使用多執行緒 A執行緒讀取URL內容 B執行緒存檔案 C執行緒解析URL 發現新URL從A執行緒讀取完的內容可以放到一個佇列裡面,B執行緒來讀取,C執行緒解析URL  問題,如果這個佇列

python爬蟲簡單的頁面圖片儲存到本地

1、首先注意編碼,設定為utf-8 #coding=utf-8 或者 #-*-conding:UTF-8 -*- 先抓取頁面資訊 #coding=utf-8 import urll

python爬蟲圖片儲存

今天爬了美麗說網站首頁的圖片 可是等把圖片的url獲取之後卻不知道怎麼儲存了。。(感覺自己當時腦子短路了) 然後自己上網查看了一些方法。。 1.網上有說 urllib模組中有個urlretrieve函式可以直接下載儲存,於是我天真的寫了urllib.urlretrieve

Pyspider例項資料儲存到MySQL資料庫

本次主要是在Pyspider例項之抓取小米眾籌產品的基礎上修改的, 本來想直接在之前那篇文章修改的,但是感覺有點長了,所以決定另外寫一篇。 閒話少說,直接進入正題: 1、在Pyspider的指令碼開頭引入: from pyspider.databas

Python網頁儲存為PDF

1、開發環境搭建 (1)Python2.7.13的安裝:參考《廖雪峰老師的網站》 (2)Python包管理器pip的安裝:參考《pip安裝文件說明》 因為基於版本2.7.13,因為2.7.9以上已經自帶pip,所以不需要單獨安裝,但是需要我們更新。上面的說

Python爬蟲實戰詳解:爬圖片之家

前言 本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理 如何使用python去實現一個爬蟲? 模擬瀏覽器請求並獲取網站資料在原始資料中提取我們想要的資料 資料篩選將篩選完成的資料做儲存 完成一個爬蟲需要哪些工具 Python3.6 p

WebMagic 圖片保存至本地

入門實例 end 中文 creat 並保存 網絡 進入 nec sel 1.近期接觸到java 爬蟲,開源的爬蟲框架有很多,其中WebMagic 是國產的,文檔也是中文的,網上資料很多,便於學習,功能強大,可以在很短時間內實現一個簡單的網絡爬蟲。具體可參考官網 http:/

量化策略多因子選股之資料儲存到本機MYSQL資料庫

資料來自於tushare 使用了sqlalchemy 包的引擎來儲存資料與SQL # coding=utf-8 import pandas as pd import tushare as ts import sys from sqlalchemy import create_engin

Python爬蟲實戰 :批量採集股票資料,儲存到Excel中

小編說:通過本文,讀者可以掌握分析網頁的技巧、Python編寫網路程式的方法、Excel的操作,以及正則表示式的使用。這些都是爬蟲專案中必備的知識和技能。本文選自《Python帶我起飛》。 例項描述:通過編寫爬蟲,將指定日期時段內的全部上市公司股票資料爬取下來,並按照股

視訊檔案按幀影象儲存

一.原材料:        win10,opencv3.0,vs2013,test.MP4。只需要配置好opencv的環境就好,3.0可以直接用MP4型別的視訊資料。 二.實現功能:       1.顯示視訊的具體資訊,幀數,幀率,解析度等;       2.對視訊進行逐幀

Basler相機影象儲存 Pylon

使用Pylon獲取相機圖片主要使用函式PylonDeviceGrabSingleFrame(PYLON_DEVICE_HANDLE hDev, size_t channel, void * pBuffer, size_t bufferSize, PylonGra

第一個小爬蟲--爬圖片儲存

import urllib.request import re import os def url_open(url): req=urllib.request.Request(url) req.add_header('User-Agent','

爬蟲:爬圖片儲存在某路徑下

import re import urllib.request def getHtml(url): page=urllib.request.urlopen(url) html=page.read() return html def getImg(html):