零基礎必看教程 Scrapy高階用法!

2021-09-27 07:49:25 字數 3343 閱讀 9725

一、日誌相關變數

群:626017123

log_level = ''

log_file = '檔名.log'

二、日誌級別

5 critical :嚴重錯誤

4 error :普通錯誤

3 warning :警告

2 info :一般資訊

1 debug :除錯資訊

注意: 只顯示當前級別的日誌和比當前級別日誌更嚴重的
三、其他匯出

設定資料匯出編碼(主要針對於json檔案)

feed_export_encoding = ''

4、非結構化資料儲存路徑

images_store = '路徑'

5、設定user-agent

user_agent = ''

資料持久化

將資料儲存的方法

一、mysql

# mysql 配置

mysql_host = '***.***.***.***'

mysql_user = '***x'

mysql_pwd = '***xx'

mysql_db = '***xx'

mysql_char = 'utf8'

class mysql(object):

def open_spider(self,spider):

# 爬蟲開始執行1次,用於資料庫連線

def process_item(self,item,spider):

# 用於儲存抓取的item資料

def close_spider(self,spider):

#爬蟲結束時執行1次,用於斷開資料庫連線

第乙個管道返回的item會繼續交由下乙個管道處理,否則返回並傳入下乙個管道的值為none
二、mongodb

# mongodb配置

mongo_host = '10.0.0.7'

mongo_port = 27017

class mysql(object):

def open_spider(self,spider):

# 爬蟲開始執行1次,用於資料庫連線

def process_item(self,item,spider):

# 用於儲存抓取的item資料

def close_spider(self,spider):

#爬蟲結束時執行1次,用於斷開資料庫連線

三、csv

命令格式

scrapy crawl maoyan -o maoyan.csv

四、json

scrapy crawl maoyan -o maoyan.json

這裡執行之後,開啟maoyan.json

這裡是編碼的問題,需要在settings.py中指定編碼為utf-8

# settings.py

feed_export_encoding = 'utf-8'

一、 基本使用

scrapy shell url位址

request.headers :請求頭(字典)

reqeust.meta :item資料傳遞,定義**(字典)

response.text :字串

response.body :bytes

response.xpath('')

二、requests

1、url

2、callback

3、headers

4、meta :傳遞資料,定義**

5、dont_filter :是否忽略域組限制

預設false,檢查allowed_domains['']

一、user-agent

編輯middlewares.py

from fake_useragent import useragent

class randomuseragentmiddleware(object):

def process_request(self,reuqest,spider):

request.headers['user-agent'] = useragent().random

設定優先順序settings.py

**********_middlewares =

二、**

編輯middlewares.py

class randomproxydownloadmiddlewares(object):

def process_request(self, reques, spider):

proxy = ''

request.meta['proxy'] = proxy

def process_exception(self, request, exception, spider):

# 如果**不可用,則交給此函式處理

return request

三、併發

編輯settings.py

concurrent_requests = 32
預設併發數為16,可根據自身配置酌情設定

四、延時

download_delay 會影響 concurrent_requests,不能使併發顯現

有concurrent_requests,沒有download_delay: 伺服器會在同一時間收到大量的請求

有concurrent_requests,有download_delay 時,伺服器不會在同一時間收到大量的請求

download_delay = 3

spider: yield item['鏈結']

pipelines.py

from scrapy.pipelines.images import imagespiprline

class spiderpipeline(imagespipe):

def get_media_requests(self, item, info):

yield scrapy.request(item['鏈結'])

settings.py

images_stroe = ''

item_pipelines = {}

零基礎小白python入門必看之高階函式(1)

如果大家在學習中遇到困難,想找乙個python學習交流環境,可以加入我們的python圈,裙號930900780,可領取python學習資料,會節約很多時間,減少很多遇到的難題。map函式的基本語法是map func,seq 其含義指的是 對後面可迭代序列中的每個元素執行前面的函式func的功能,最...

零基礎小白python入門必看之高階函式(2)

如果大家在學習中遇到困難,想找乙個python學習交流環境,可以加入我們的python裙,q裙號930900780,可領取python學習資料,會節約很多時間,減少很多遇到的難題。語法複製 3個引數 sorted 接受3個引數,返回的是乙個排序後的列表 demo 複製 預設不反轉 對元組 range...

零基礎小白python入門必看之高階函式(1)

如果大家在學習中遇到困難,想找乙個python學習交流環境,可以加入我們的python圈,裙號930900780,可領取python學習資料,會節約很多時間,減少很多遇到的難題。map函式的基本語法是map func,seq 其含義指的是 對後面可迭代序列中的每個元素執行前面的函式func的功能,最...