python3程式設計08-爬蟲實戰:爬取網路圖片
本篇部落格爬取內容如下:
爬取校花網的圖片
準備工作:
1.安裝python3
2.安裝pycharm
3.安裝Scrapy,參考:Scrapy安裝
cmd命令新建Scrapy工程
1. 在D:\PythonProjects目錄下新建出一個名為pycodes的資料夾
2. Win+R 開啟cmd命令列,用命令切換到D:\PythonProjects\pycodes目錄下
切換到d盤下,在cmd命令列下輸入"d:"
d:
進入到d盤 D:\PythonProjects\pycodes目錄下
cd D:\PythonProjects\pycodes
3. 通過命令新建一個scrapy工程:
scrapy startproject pyscrapydemo
有如上“You can start your first spider with:”輸出為成功建立scrapy工程。
4. 檢視pycodes目錄下生成了工程資料夾:
我們可以進入到spider目錄下寫我們的python爬蟲程式
例如建立了一個爬蟲 demo.py,用命令scrapy crawl demo執行。
這裡只是演示如何用命令建立一個scrapy工程,瞭解命令的作用以及執行命令後產生了什麼變化即可。
用Scrapy爬取校花網圖片
1. 建立工程
開啟PyCharm軟體,用PyCharm建立一個python專案:xiaohua(名字隨意取)
點選PyCharm左下角Terminal進入命令列
- 2.建立Scrapy爬蟲專案
scrapy startproject myfirstspider
3.建立一隻簡單爬蟲
進入到爬蟲專案目錄myfirstspider
cd myfirstspider
建立爬蟲
語法:scrapy genspider [引數] <爬蟲名> <域名>
scrapy genspider -t basic xiaohua xiaohuar.com
其中:-t 為模板
執行以上命令後,在spiders目錄下生成xiaohua.py檔案:
4.編寫爬蟲程式碼
編輯xiaohua.py,內容如下:
# -*- coding: utf-8 -*-
import scrapy
from scrapy.http import Request
import re
class XiaohuaSpider(scrapy.Spider):
name = 'xiaohua'
allowed_domains = ['xiaohuar.com']
start_urls = []
#修改range()括號裡的內容可以調整下載頁面數量
for i in range(3):
url = "http://www.xiaohuar.com/list-1-%s.html" %i
start_urls.append(url)
def parse(self, response):
if "www.xiaohuar.com/list-1" in response.url:
# 下載的html原始碼
html = response.text
# 網頁中圖片儲存地址:src="/d/file/20160126/905e563421921adf9b6fb4408ec4e72f.jpg"
# 通過正則匹配到所有的圖片
# 獲取的是圖片的相對路徑的列表
# \d+代表匹配一個或多個數字
# \w+代表匹配一個或多個字母、數字、下劃線的字元
img_urls = re.findall(r'/d/file/\d+/\w+\.jpg', html)
# 使用迴圈對圖片頁進行請求
for img_url in img_urls:
# 將圖片的URL補全
if "http://" not in img_url:
img_url = "http://www.xiaohuar.com%s" % img_url
# 回撥,返回response
yield Request(img_url)
else:
# 下載圖片
url = response.url
# 儲存的圖片檔名
title = re.findall(r'\w*.jpg', url)[0]
# 儲存圖片,儲存的目錄要先創建出來
with open('D:\\xiaohua_img\\%s' % title, 'wb') as f:
f.write(response.body)
D盤下新建xiaohua_img資料夾,用於儲存爬蟲圖片
5.執行爬蟲程式
scrapy crawl xiaohua
6.檢視結果
檢視在D:\xiaohua_img資料夾下,爬蟲下載了校花圖片,如下圖。
小結:
Scrapy寫爬蟲程式的步驟:
1.建立工程
2.新建專案>scrapy startproject myfirstspider
3.建立爬蟲
>cd myfirstspider
>scrapy genspider -t basic xiaohua xiaohuar.com
4.編寫爬蟲程式碼xiaohua.py
5.執行爬蟲程式>scrapy crawl xiaohua
6.檢視結果
完成! enjoy it!