Scrapy--使用phantomjs爬取花瓣網圖片
新建一個scrapy工程
(python35) ubuntu@ubuntu:~/scrapy_project$ scrapy startproject huaban
新增一個spider
(python35) ubuntu@ubuntu:~/scrapy_project/huaban/huaban/spiders$ scrapy genspider huaban_pets huaban.com
目錄結構如下:
(python35) [email protected]:~/scrapy_project/huaban$ tree -I *.pyc
.
├── huaban
│ ├── __init__.py
│ ├── items.py
│ ├── middlewares.py
│ ├── pipelines.py
│ ├── __pycache__
│ ├── settings.py
│ └── spiders
│ ├── huaban_pets.py
│ ├── __init__.py
│ └── __pycache__
└── scrapy.cfg
編輯items.py檔案
# -*- coding: utf-8 -*-
import scrapy
class HuabanItem(scrapy.Item):
img_url = scrapy.Field ()
編輯huaban_pets.py
# -*- coding: utf-8 -*-
import scrapy
class HuabanPetsSpider(scrapy.Spider):
name = 'huaban_pets'
allowed_domains = ['huaban.com']
start_urls = ['http://huaban.com/favorite/pets/']
def parse(self, response):
for img_src in response.xpath('//*[@id="waterfall"]/div/a/img/@src' ).extract():
item = HuabanmeinvItem()
# 例如img_src為//img.hb.aicdn.com/223816b7fee96e892d20932931b15f4c2f8d19b315735-wgi1w2_fw236
# 去掉後面的_fw236就為原圖
item['img_url'] = 'http:' + img_src[:-6]
yield item
編寫一箇中間鍵使用phantomj獲取網頁原始碼
在middlewares.py新增如下內容:
# -*- coding: utf-8 -*-
from scrapy import signals
from selenium import webdriver
from scrapy.http import HtmlResponse
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
class JSPageMiddleware(object):
def process_request(self, request, spider):
if spider.name == 'hbmeinv':
# cap[".page.setting.resourceTimeout"] = 180
# cap["chrome.page.setting.loadImage"] = False
dcap = dict(DesiredCapabilities.PHANTOMJS)
# 不載入圖片,爬頁面速度會快很多
dcap["phantomjs.page.settings.loadImages"] = False
browser = webdriver.PhantomJS(executable_path=r'/home/ubuntu/scrapy_project/huabanphantomjs',desired_capabilities=dcap)
try:
browser.get(request.url)
return HtmlResponse(url=browser.current_url, body=browser.page_source,encoding='utf-8',request=request)
except:
print("get page failed!")
finally:
browser.quit()
el return
在pipelines.py中新增如下內容下載網頁圖片:
# -*- coding: utf-8 -*-
import urllib
class HuabanmeinvPipeline(object):
def process_item(self, item, spider):
url = item['img_url']
urllib.request.urlretrieve(url, filename=r'/home/ubuntu/scrapy_project/huaban/image/%s.jpg' % url[url.rfind('/')+1:])
return item
在setting.py中使用新增的中間鍵和設定訊息頭
DEFAULT_REQUEST_HEADERS = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'zh-CN',
'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
}
# Enable or disable downloader middlewares
# See http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html
DOWNLOADER_MIDDLEWARES = {
#'huabanmeinv.middlewares.MyCustomDownloaderMiddleware': 543,
'huabanmeinv.middlewares.JSPageMiddleware': 543,
}
# Configure item pipelines
# See http://scrapy.readthedocs.org/en/latest/topics/item-pipeline.html
ITEM_PIPELINES = {
'huabanmeinv.pipelines.HuabanmeinvPipeline': 300,
}
開始爬取
ubuntu@ubuntu:~/scrapy_project/huaban/huaban/spiders$ scrapy runspider huaban_pets.py
爬取結束後,就可以在/home/ubuntu/scrapy_project/huaban/image目錄下看到爬取的圖片了,例如:
相關推薦
Scrapy--使用phantomjs爬取花瓣網圖片
新建一個scrapy工程 (python35) ubuntu@ubuntu:~/scrapy_project$ scrapy startproject huaban 新增一個spider
使用Scrapy框架爬取360攝影圖片的資訊
要點 1.分析Ajax請求 觀察到Ajax請求引數的變化,有一個引數sn一直在變化,當sn=30時,返回的時前30張圖片,listtype時排序方式,temp是引數可以忽略 2.構造請求和提取資訊 #
Python爬取妹子網圖片
提取文章標題 import requests from bs4 import BeautifulSoup url = 'http://www.mzitu.com/26685' header = {'User-Agent': 'Mozilla/5.0 (
Python:scrapy框架爬取校花網男神圖片儲存到本地
爬蟲四部曲,本人按自己的步驟來寫,可能有很多漏洞,望各位大神指點指點 1、建立專案 scrapy startproject xiaohuawang scrapy.cfg: 專案的配置檔案 xiaohuawang/: 該專案的python模組。之後您將在此加入程
Python3 大型網路爬蟲實戰 003 — scrapy 大型靜態圖片網站爬蟲專案實戰 — 實戰:爬取 169美女圖片網 高清圖片
開發環境 Python第三方庫:lxml、Twisted、pywin32、scrapy Python 版本:python-3.5.0-amd64 PyCharm軟體版本:pycharm-professional-2016.1.4 電腦系統:Wi
scrapy實戰1分布式爬取有緣網:
req 年齡 dict ems arch last rem pen war 直接上代碼: items.py 1 # -*- coding: utf-8 -*- 2 3 # Define here the models for your scraped items
我的第一個Scrapy 程序 - 爬取當當網信息
ref http ide ces passwd lds url ext != 前面已經安裝了Scrapy,下面來實現第一個測試程序。 概述 Scrapy是一個爬蟲框架,他的基本流程如下所示(下面截圖來自互聯網) 簡單的說,我們需要寫一個item文件,定義返回的數據結構;寫
scrapy案例:爬取翼蜂網絡新聞列表和詳情頁面
model rap name lB htm nod meta http AR # -*- coding: utf-8 -*- import scrapy from Demo.items import DemoItem class AbcSpider(scrapy.Sp
selelinum+PhantomJS 爬取拉鉤網職位
one while 對象 bili exe 5.0 設置 expect money 使用selenium+PhantomJS爬取拉鉤網職位信息,保存在csv文件至本地磁盤 拉鉤網的職位頁面,點擊下一頁,職位信息加載,但是瀏覽器的url的不變,說明數據不是發送get請求得到的
最簡單的網絡圖片的爬取 --Pyhon網絡爬蟲與信息獲取
文件 spa lose man spl roo () pen image 1、本次要爬取的圖片url http://www.nxl123.cn/static/imgs/php.jpg 2、代碼部分 import requestsimport osurl = "ht
使用scrapy框架爬取蜂鳥論壇的攝影圖片並下載到本地
utf 賦值 col 異常處理 創建文件夾 clas watermark follow ret 目標網站:http://bbs.fengniao.com/使用框架:scrapy 因為有很多模塊的方法都還不是很熟悉,所有本次爬蟲有很多代碼都用得比較笨,希望各位讀者能給處意見
Scrapy:虎牙爬取,圖片存儲與數據分析
alt 數據分析 mage 加載 ram data afr frame bubuko 第一次爬取虎牙主播數據,有點小激動 1.共批量爬取的101個主播的,包括 頭像 主播名字 房間號 房間鏈接 2.數據規整部分,需要將json數據加載到pandas的Dataframe,
python+scrapy爬取鬥魚圖片
建立scrapy的專案請參考:https://blog.csdn.net/qq_35723619/article/details/83614670 items的實現: DouyumeinvSpider建立: 這次我們爬去的是json資料包:我們可以通過network監控:
Python的scrapy之爬取鏈家網房價資訊並儲存到本地
因為有在北京租房的打算,於是上網瀏覽了一下鏈家網站的房價,想將他們爬取下來,並儲存到本地。 先看鏈家網的原始碼。。房價資訊 都儲存在 ul 下的li 裡面 爬蟲結構: 其中封裝了一個數據庫處理模組,還有一個user-agent池。。 先看mylian
Python的scrapy之爬取鏈家網房價信息並保存到本地
width gif pat lse idt ext tst maximum spa 因為有在北京租房的打算,於是上網瀏覽了一下鏈家網站的房價,想將他們爬取下來,並保存到本地。 先看鏈家網的源碼。。房價信息 都保存在 ul 下的li 裏面 ? 爬蟲結構: ? 其中封裝了一
scrapy爬取詩詞網
入門scrapy不久,嘗試著寫一段程式碼爬取詩詞網. spider如下: class ShiciSpider(scrapy.Spider): name = 'shici' url = 'http://www.shicimingju.com/c
Python的scrapy之爬取6毛小說網
閒來無事想看個小說,打算下載到電腦上看,找了半天,沒找到可以下載的網站,於是就想自己爬取一下小說內容並儲存到本地 聖墟 第一章 沙漠中的彼岸花 - 辰東 - 6毛小說網 http://www.6mao.com/html/40/40184/12601161.html 這是要爬取的網
福利向---Scrapy爬蟲爬取多級圖片網站
1.目標站分析 目標站網址為https://52zfl.vip/zhaifuli/list_2_1.html 每頁網址有若干連結,點選每個連結,是每部圖片資源的詳情頁面,由於圖片數量較多,涉及到翻頁操作。 通過分析頁面html程式碼,提取有用部分如下:
Python的scrapy之爬取6毛小說網的聖墟
閒來無事想看個小說,打算下載到電腦上看,找了半天,沒找到可以下載的網站,於是就想自己爬取一下小說內容並儲存到本地 聖墟 第一章 沙漠中的彼岸花 - 辰東 - 6毛小說網 http://www.6mao.com/html/40/40184/12601161.html 這是要爬取的網頁 觀察結構 下一章 然
java使用jsoup,多執行緒批量爬取天極網某分類下的圖片
小Demo轉自csdn某作者, 本例子只作為測試,頁面個數直接設定了100個,可以可能會少或者多,容易報錯,更優化的一種方式是獲取“下一頁”按鈕的地址,然後再訪問,當訪問不到“下一頁”的內容時跳出 多執行緒只體現在檔案提取,也可以在elements迴圈中再加一個多執行緒