日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

scrapy框架的日志等级和请求传参

發布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 scrapy框架的日志等级和请求传参 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Scrapy的日志等級

  

- 在使用scrapy crawl spiderFileName運行程序時,在終端里打印輸出的就是scrapy的日志信息。- 日志信息的種類:ERROR : 一般錯誤WARNING : 警告INFO : 一般的信息DEBUG : 調試信息- 設置日志信息指定輸出:在settings.py配置文件中,加入LOG_LEVEL = ‘指定日志信息種類’即可。LOG_FILE = 'log.txt'則表示將日志信息寫入到指定文件中進行存儲。

請求傳參

  - 在某些情況下,我們爬取的數據不在同一個頁面中,例如,我們爬取一個電影網站,電影的名稱,評分在一級頁面,而要爬取的其他電影詳情在其二級子頁面中。這時我們就需要用到請求傳參。

  - 案例展示:爬取www.id97.com電影網,將一級頁面中的電影名稱,類型,評分一級二級頁面中的上映時間,導演,片長進行爬取。

爬蟲文件:

import scrapy from moviePro.items import MovieproItemclass MovieSpider(scrapy.Spider):name = 'movie'allowed_domains = ['www.id97.com']start_urls = ['http://www.id97.com/']def parse(self, response):div_list = response.xpath('//div[@class="col-xs-1-5 movie-item"]')for div in div_list:item = MovieproItem()item['name'] = div.xpath('.//h1/a/text()').extract_first()item['score'] = div.xpath('.//h1/em/text()').extract_first()#xpath(string(.))表示提取當前節點下所有子節點中的數據值(.)表示當前節點item['kind'] = div.xpath('.//div[@class="otherinfo"]').xpath('string(.)').extract_first()item['detail_url'] = div.xpath('./div/a/@href').extract_first()#請求二級詳情頁面,解析二級頁面中的相應內容,通過meta參數進行Request的數據傳遞yield scrapy.Request(url=item['detail_url'],callback=self.parse_detail,meta={'item':item})def parse_detail(self,response):#通過response獲取itemitem = response.meta['item']item['actor'] = response.xpath('//div[@class="row"]//table/tr[1]/a/text()').extract_first()item['time'] = response.xpath('//div[@class="row"]//table/tr[7]/td[2]/text()').extract_first()item['long'] = response.xpath('//div[@class="row"]//table/tr[8]/td[2]/text()').extract_first()#提交item到管道yield item

items文件:

# Define here the models for your scraped items # # See documentation in: # https://doc.scrapy.org/en/latest/topics/items.htmlimport scrapyclass MovieproItem(scrapy.Item):# define the fields for your item here like:name = scrapy.Field()score = scrapy.Field()time = scrapy.Field()long = scrapy.Field()actor = scrapy.Field()kind = scrapy.Field()detail_url = scrapy.Field()

管道文件:

# Define your item pipelines here # # Don't forget to add your pipeline to the ITEM_PIPELINES setting # See: https://doc.scrapy.org/en/latest/topics/item-pipeline.htmlimport json class MovieproPipeline(object):def __init__(self):self.fp = open('data.txt','w')def process_item(self, item, spider):dic = dict(item)print(dic)json.dump(dic,self.fp,ensure_ascii=False)return itemdef close_spider(self,spider):self.fp.close()

如何提高scrapy的爬取效率

增加并發:默認scrapy開啟的并發線程為32個,可以適當進行增加。在settings配置文件中修改CONCURRENT_REQUESTS = 100值為100,并發設置成了為100。降低日志級別:在運行scrapy時,會有大量日志信息的輸出,為了減少CPU的使用率??梢栽O置log輸出信息為INFO或者ERROR即可。在配置文件中編寫:LOG_LEVEL = ‘INFO’禁止cookie:如果不是真的需要cookie,則在scrapy爬取數據時可以進制cookie從而減少CPU的使用率,提升爬取效率。在配置文件中編寫:COOKIES_ENABLED = False禁止重試:對失敗的HTTP進行重新請求(重試)會減慢爬取速度,因此可以禁止重試。在配置文件中編寫:RETRY_ENABLED = False減少下載超時:如果對一個非常慢的鏈接進行爬取,減少下載超時可以能讓卡住的鏈接快速被放棄,從而提升效率。在配置文件中進行編寫:DOWNLOAD_TIMEOUT = 10 超時時間為10s

測試案例:爬取校花網?;▓D片 www.521609.com

import scrapy from xiaohua.items import XiaohuaItemclass XiahuaSpider(scrapy.Spider):name = 'xiaohua'allowed_domains = ['www.521609.com']start_urls = ['http://www.521609.com/daxuemeinv/']pageNum = 1url = 'http://www.521609.com/daxuemeinv/list8%d.html'def parse(self, response):li_list = response.xpath('//div[@class="index_img list_center"]/ul/li')for li in li_list:school = li.xpath('./a/img/@alt').extract_first()img_url = li.xpath('./a/img/@src').extract_first()item = XiaohuaItem()item['school'] = schoolitem['img_url'] = 'http://www.521609.com' + img_urlyield itemif self.pageNum < 10:self.pageNum += 1url = format(self.url % self.pageNum)#print(url)yield scrapy.Request(url=url,callback=self.parse)

?

# Define here the models for your scraped items # # See documentation in: # https://doc.scrapy.org/en/latest/topics/items.htmlimport scrapyclass XiaohuaItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()school=scrapy.Field()img_url=scrapy.Field()

?

# Define your item pipelines here # # Don't forget to add your pipeline to the ITEM_PIPELINES setting # See: https://doc.scrapy.org/en/latest/topics/item-pipeline.htmlimport json import os import urllib.request class XiaohuaPipeline(object):def __init__(self):self.fp = Nonedef open_spider(self,spider):print('開始爬蟲')self.fp = open('./xiaohua.txt','w')def download_img(self,item):url = item['img_url']fileName = item['school']+'.jpg'if not os.path.exists('./xiaohualib'):os.mkdir('./xiaohualib')filepath = os.path.join('./xiaohualib',fileName)urllib.request.urlretrieve(url,filepath)print(fileName+"下載成功")def process_item(self, item, spider):obj = dict(item)json_str = json.dumps(obj,ensure_ascii=False)self.fp.write(json_str+'\n')#下載圖片 self.download_img(item)return itemdef close_spider(self,spider):print('結束爬蟲')self.fp.close()

配置文件:

USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'# Obey robots.txt rules ROBOTSTXT_OBEY = False# Configure maximum concurrent requests performed by Scrapy (default: 16) CONCURRENT_REQUESTS = 100 COOKIES_ENABLED = False LOG_LEVEL = 'ERROR' RETRY_ENABLED = False DOWNLOAD_TIMEOUT = 3 # Configure a delay for requests for the same website (default: 0) # See https://doc.scrapy.org/en/latest/topics/settings.html#download-delay # See also autothrottle settings and docs # The download delay setting will honor only one of: #CONCURRENT_REQUESTS_PER_DOMAIN = 16 #CONCURRENT_REQUESTS_PER_IP = 16 DOWNLOAD_DELAY = 3

?

轉載于:https://www.cnblogs.com/wanglan/p/10826999.html

總結

以上是生活随笔為你收集整理的scrapy框架的日志等级和请求传参的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产一区二区精品在线 | 国产又粗又猛又黄视频 | 亚洲区自拍 | www.日韩高清 | 极品美女av | 日韩黄色免费电影 | 吃奶在线观看 | 国产精品一区二区三区四区 | 国产精品久久久久久一区二区三区 | 日本成片网 | 啪啪免费小视频 | 99re7| 亚洲日日日 | 少妇大叫太粗太大爽一区二区 | 神马午夜在线观看 | 九九碰 | 午夜精品一区二区在线观看 | 国产少妇一区二区 | 亚洲男人在线 | 国产区视频在线 | 免费成人深夜夜行p站 | 久久亚洲中文字幕无码 | 7777久久亚洲中文字幕 | 国产成人免费av一区二区午夜 | 玉势 (1v1 高h)| 一起操网址 | 国产第一区第二区 | 国语毛片| 色哟哟一区二区 | 麻豆视频传媒入口 | 日韩色综合网 | 精品国产乱 | 婷婷色综合网 | 久久精品美乳 | 久久99精品国产.久久久久久 | 男女做爰真人视频直播 | 婷婷成人综合 | 色姑娘天天操 | 日啪| 内地级a艳片高清免费播放 91在线精品一区二区 | 91av综合| 少妇毛片视频 | 一级大黄毛片 | 黄色免费视屏 | 色婷婷在线观看视频 | 992tv成人免费视频 | 欧美精品成人一区二区在线观看 | 国产成人午夜精华液 | 欧美脚交 | 九九色网站 | 人人搞人人插 | 一区二区视频在线播放 | 久国久产久精永久网页 | 黄色www| 肉番在线观看 | 毛片的网站 | 亚洲精品无码久久 | 女同另类之国产女同 | 亚洲精品视频在线观看免费 | 欧美精品免费播放 | 在线一区二区三区视频 | 999午夜| 综合久久久久 | 91久久一区二区三区 | 伊人资源 | 操操操免费视频 | 国产免费一区二区视频 | 欧美精品午夜 | 日本美女a级片 | 天堂精品一区二区三区 | 私密spa按摩按到高潮 | 激情天天 | 少妇高潮一区二区三区99欧美 | 99在线免费 | 亚洲人妻电影一区 | 玖玖在线免费视频 | 粗大的内捧猛烈进出视频 | 91av在线视频播放 | 冈本视频在线观看 | 亚洲欧美日本一区二区 | 玖玖爱资源站 | 少妇性高潮视频 | 日本va欧美va精品发布 | 精品丝袜一区 | 亚洲一级中文字幕 | 日本人妻伦在线中文字幕 | 麻豆精品久久久久久久99蜜桃 | 日韩欧美视频在线免费观看 | 亚洲调教 | 免费观看的黄色网址 | 亚洲第一免费视频 | 91精品欧美一区二区三区 | 野花av| 啪啪日韩 | 国产精品久久久久久一区二区 | 久色精品视频 | 午夜激情在线视频 | 在线观看黄av | 日日爽视频 |