爬虫--Scrapy-参数等级和请求传参

时间:2022-09-06 15:40:28

日志等级

日志等级(种类):
ERROR:错误
WARNING:警告
INFO:一般信息
DEBUG:调试信息(默认)
指定输入某一中日志信息:
settings:LOG_LEVEL = ‘ERROR’
将日志信息存储到制定文件中,而并非显示在终端里:
settings:LOG_FILE = ‘log.txt’ 请求传参:爬取的数据值不在同一个页面中。
需求:将id97电影网站中电影详情数据进行爬取(名称,类型,导演,语言,片长)

如何让终端显示错误信息

在settings.py中配置

# 指定终端输入指定种类日志信息
LOG_LEVEL = 'ERROR'
# 存储到文件
LOG_FILE = 'log.txt'

请求传参

请求传参:爬取的数据值不在同一个页面中。
id97电影网站) 在电影网站中电影详情数据进行爬取(名称,类型,导演,语言,片长)

创建moviePro工程

scrapy startproject moviePro

cd moviePro

scrapy genspider movie www.id97.com

爬虫--Scrapy-参数等级和请求传参爬虫--Scrapy-参数等级和请求传参

电影名称和类型在一页

电影的其他详情在另外一页

爬虫文件movie.py

import scrapy
from moviePro.items import MovieproItem class MovieSpider(scrapy.Spider):
name = 'movie'
#allowed_domains = ['www.id97.com']
start_urls = ['https://www.55xia.com/movie']
print(' start_urls') # 用于解析二级页面数据 def parseBySecondPage(self,response):
# 直接复制网页端的xpath
director = response.xpath('/html/body/div[1]/div/div/div[1]/div[1]/div[2]/table/tbody/tr[1]/td[1]/span/text()').extract_first()
language = response.xpath('/html/body/div[1]/div/div/div[1]/div[1]/div[2]/table/tbody/tr[6]/td[2]/text()').extract_first()
longTime = response.xpath('/html/body/div[1]/div/div/div[1]/div[1]/div[2]/table/tbody/tr[8]/td[2]/text()').extract_first()
# 取出Request方法的meta参数传递过来的字典(response.meta)
item = response.meta['item']
item['director'] = director
item['language'] = language
item['longTime'] = longTime
# 将item提交给管道
print('将item提交给管道')
yield item def parse(self, response):
# 需求:将id97电影网站中电影详情数据进行爬取(名称,类型,导演,语言,片长)
div_list = response.xpath('/html/body/div[1]/div[1]/div[2]/div')
for div in div_list:
# extract_first()第一个
name = div.xpath(".//div[@class='meta']/h1/a/text()").extract_first()
kind = div.xpath('.//div[@class="otherinfo"]//text()').extract()
# 将kind列表转化成字符串
kind = " ".join(kind)
url = div.xpath('.//div[@class="meta"]/h1/a/@href').extract_first()
# href="//www.55xia.com/movie/638284.html
url = 'https:'+url
# 创建items对象
item = MovieproItem()
item['name'] = name
item['kind'] = kind
item['url'] = url
print('创建items对象') # 需要对url发起请求,获取页面数据,进行指定数据解析
# 问题:如何将剩下的电影详情数据存储到item对象(meta)
# 需要对url发起请求,获取页面数据,进行指定数据解析
# meta参数只可以赋值一个字典(将item对象先封装到字典)
yield scrapy.Request(url=url, callback=self.parseBySecondPage, meta={'item': item})

movie.py

items.py

import scrapy

class MovieproItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
name = scrapy.Field()
kind = scrapy.Field()
director = scrapy.Field()
language = scrapy.Field()
longTime = scrapy.Field()
url = scrapy.Field()

管道pipelines.py

class MovieproPipeline(object):
fp = None def open_spider(self, spider):
self.fp = open('movie.txt', 'w', encoding='utf-8') def process_item(self, item, spider):
print('------process_item-------')
detail = item['name'] + ':' + item['kind'] + ':' + item['director'] + ':' + item['language'] + ':' + item[
'longTime'] + '\n\n\n'
self.fp.write(detail)
return item def close_spider(self, spider):
self.fp.close()
爬虫--Scrapy-参数等级和请求传参

爬虫--Scrapy-参数等级和请求传参的更多相关文章

  1. Scrapy日志等级以及请求传参

    日志等级 请求传参 提高scrapy的爬取效率 日志等级 - 日志信息:   使用命令:scrapy crawl 爬虫文件 运行程序时,在终端输出的就是日志信息: - 日志信息的种类: - ERROR ...

  2. scrapy框架的日志等级和请求传参, 优化效率

    目录 scrapy框架的日志等级和请求传参, 优化效率 Scrapy的日志等级 请求传参 如何提高scripy的爬取效率 scrapy框架的日志等级和请求传参, 优化效率 Scrapy的日志等级 在使 ...

  3. 爬虫开发10.scrapy框架之日志等级和请求传参

    今日概要 日志等级 请求传参 今日详情 一.Scrapy的日志等级 - 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是scrapy的日志信息. - 日志 ...

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

    今日概要 日志等级 请求传参 如何提高scrapy的爬取效率 今日详情 一.Scrapy的日志等级 - 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是s ...

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

    日志等级 请求传参 如何提高scrapy的爬取效率 一.Scrapy的日志等级 - 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是scrapy的日志信息 ...

  6. scrapy框架之日志等级和请求传参-cookie-代理

    一.Scrapy的日志等级 - 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是scrapy的日志信息. - 日志信息的种类: ERROR : 一般错误 ...

  7. Scrapy的日志等级和请求传参

    日志等级 日志信息:   使用命令:scrapy crawl 爬虫文件 运行程序时,在终端输出的就是日志信息: 日志信息的种类: ERROR:一般错误: WARNING:警告: INFO:一般的信息: ...

  8. scrapy框架post请求发送,五大核心组件,日志等级,请求传参

    一.post请求发送 - 问题:爬虫文件的代码中,我们从来没有手动的对start_urls列表中存储的起始url进行过请求的发送,但是起始url的确是进行了请求的发送,那这是如何实现的呢? - 解答: ...

  9. Scrapy框架之日志等级和请求传参

    一.Scrapy的日志等级 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是scrapy的日志信息. 1.日志等级(信息种类) ERROR:错误 WARN ...

随机推荐

  1. LCD底层驱动分析

    根据分析的框架,自己写一个LCD驱动程序 1分析LCD硬件原理图 Von和Voff接的是一个电源电路,通过LCD_POWER接的是GPG4来控制LCD电源,高电平表示开启LCD电源 VM接的是CPU的 ...

  2. BinaryHeap Java实现

    public class BinaryHeap<AnyType extends Comparable<? super AnyType>> { private static fi ...

  3. ecshop 商品详情页显示同类别下的推荐商品

    1.打开goods.php文件找到下面代码 $smarty->assign('goods_rank', get_goods_rank($goods_id)); // 商品的销售排名 在上面的代码 ...

  4. 【原】在一般处理程序中设置session

    using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using Syste ...

  5. Ganglia 监控Hadoop

    Ganglia监控Hadoop集群的安装部署 一. 安装环境 Ubuntu server 12.04 安装gmetad的机器:192.168.52.105 安装gmond的机 器:192.168.52 ...

  6. IDEA 中配置JDK

    提前安装jdk,配置环境变量 一.配置jdk 1.依次点开File -->Project Structure,点击左侧标签页,点击SDKs 2.点击+号,选SDK 3.在弹出框选择jdk路径(我 ...

  7. 解决RSA加密中,System&period;Security&period;Cryptography&period;CryptographicException&colon; 系统找不到指定的文件

    首先说下环境,win2008R2,iis7.5 遇到这个问题,困扰了我一天,在外国的网站上找到答案,还好有点英文基础.最后算是解决了,不过其中的原理还是没有搞的十分清楚. 先说下解决办法, 打开IIS ...

  8. &lbrack;物理学与PDEs&rsqb;第1章第3节 真空中的 Maxwell 方程组&comma; Lorentz 力 3&period;1 真空中的 Maxwell 方程组

    1.稍微修正以前局部使用的方程组可以得到真空中的 Maxwell 方程组: $$\beex \bea \Div {\bf E}&=\cfrac{\rho}{\ve_0},\\ \rot{\bf ...

  9. python 读取excel文件

    方法一:利用pandas import pandas as pd inputfile_1 = "F:\\大论文实验\\福贡县数据\\贫困人口数据_2015.xlsx" data1 ...

  10. python基础学习(十)字符串

    字符串的定义 字符串 就是 一串字符,是编程语言中表示文本的数据类型 在 Python 中可以使用 一对双引号 " 或者 一对单引号 ' 定义一个字符串 虽然可以使用 \" 或者 ...