一、日誌相關變數
群: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):三、csvdef open_spider(self,spider):
# 爬蟲開始執行1次,用於資料庫連線
def process_item(self,item,spider):
# 用於儲存抓取的item資料
def close_spider(self,spider):
#爬蟲結束時執行1次,用於斷開資料庫連線
命令格式
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設定優先順序settings.pyclass randomuseragentmiddleware(object):
def process_request(self,reuqest,spider):
request.headers['user-agent'] = useragent().random
**********_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的功能,最...