Scrapy请求传参

scrapy.Request(url=url, callback=self.parse_item, meta={‘item‘: item}, headers=headers)

url: 要请求的地址

callback:响应成功之后的回调函数

meta: 参数传递

headers: 定制头信息,一般不用

# -*- coding: utf-8 -*-
‘‘‘
要抓取的数据部分在一级页面、一部分在二级页面
‘‘‘
import scrapy
from movie.items import MovieItem

class MvSpider(scrapy.Spider):
# 爬虫文件的名字
name = ‘mv‘
# 允许的域名
allowed_domains = [‘www.ygdy8.net‘]
# 起始的url
start_urls = [‘http://www.ygdy8.net/html/gndy/dyzz/index.html‘]
def parse(self, response):
a_list = response.xpath(‘//div[@class="co_content8"]//table//a‘)
for a in a_list:
title = a.xpath(‘./text()‘).extract_first()
href = ‘http://www.ygdy8.net‘ + a.xpath(‘./@href‘).extract_first()
movie = MovieItem(title=title)
# callback是执行的方法 meta是响应时候携带的参数
yield scrapy.Request(url=href,callback=self.parse_detail,meta={‘movie‘:movie})

def parse_detail(self,response):
movie = response.meta[‘movie‘]
src = response.xpath(‘//div[@id="Zoom"]//p[1]/img[1]/@src‘).extract_first()
movie[‘src‘]=src
yield movie

原文地址:https://www.cnblogs.com/huanggaoyu/p/10656674.html

时间: 2024-10-03 02:28:48

Scrapy请求传参的相关文章

scrapy请求传参,提高爬取效率,fake-useragent

scrapy请求传参 """ # 1 传参 :yield Request(url,callback=self.parser_detail,meta={'item':item}) # 2 取参:response.meta.get('item') """ 提高爬取效率的方式 """ - 在配置文件中进行相关的配置即可:(默认还有一套setting) #1 增加并发: 默认scrapy开启的并发线程为32个,可以适当进行增

爬虫scrapy组件 请求传参,post请求,中间件

post请求 在scrapy组件使用post请求需要调用 def start_requests(self): 进行传参再回到 yield scrapy.FormRequest(url=url,formdata=data,callback=self.parse)进行post请求 其中FormRequest()为post 请求方式 import scrapy class PostSpider(scrapy.Spider): name = 'post' # allowed_domains = ['ww

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

一.Scrapy的日志等级 - 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是scrapy的日志信息. - 日志信息的种类: ERROR : 一般错误 WARNING : 警告 INFO : 一般的信息 DEBUG : 调试信息 默认的显示级别是DEBUG - 设置日志信息指定输出: 在settings.py配置文件中,加入LOG_LEVEL = ‘指定日志信息种类’即可.LOG_FILE = 'log.txt'则表示将日志信息写入到指定文件中进行

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

目录 scrapy框架的日志等级和请求传参, 优化效率 Scrapy的日志等级 请求传参 如何提高scripy的爬取效率 scrapy框架的日志等级和请求传参, 优化效率 Scrapy的日志等级 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是scrapy的日志信息. 日志信息的种类: ERROR : 一般错误 WARNING : 警告 INFO : 一般的信息 DEBUG : 调试信息 设置日志信息指定输出: 在settings.py配置文件中,加

【Scrapy框架之请求传参案例】 -- 2019-08-08 20:40:13

原文: http://106.13.73.98/__/141/ 在某些情况下,我们爬取的数据不在同一个页面. 例如下面的案例1,我们要爬取一个电影网站,电影的排名.名称.主演分在一页,而其它的信息分在二级子页面中.这时,我们就需要用到请求传参. 案例1:爬取97电影网中所有热门电影的详细信息 97电影网热门电影URL:http://www.55xia.com/movie/hotest/ 第一步,爬虫文件: # -*- coding: utf-8 -*- import scrapy from Te

python爬虫---scrapy框架爬取图片,scrapy手动发送请求,发送post请求,提升爬取效率,请求传参(meta),五大核心组件,中间件

# settings 配置 UA USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36' 一丶scrapy的图片数据爬取(流数据的爬取) ? scrapy中封装好了一个管道类(ImagesPipeline),基于该管道类可以实现图片资源的请求和持久化存储 编码流程: 爬虫文件中解析出图片的地址 将

scrapy入门(二)请求传参和中间件

scrapy的请求传参 作用 : 实现深度爬取 使用场景 : 爬取的数据没有在同一张页面 例如, 爬取电影首页全部电影的详情页信息 #请求传参: 让Request将一个数据值(字典)传递给回调函数 #在第一页中将item对象的第一个属性赋值,然后通过请求传参将item对象传过去 #手动发送get请求: model_index = [3,4,6,7,8] for index in model_list: li =li_list[index] model_url = li.xpath('xxxxxx

爬虫5 scrapy框架2 全站爬取cnblogs, scarpy请求传参, 提高爬取效率, 下载中间件, 集成selenium, fake-useragent, 去重源码分析, 布隆过滤器, 分布式爬虫, java等语言概念补充, bilibili爬视频参考

1 全站爬取cnblogs # 1 scrapy startproject cnblogs_crawl # 2 scrapy genspider cnblogs www.cnblogs.com 示例: # cnblogs_crawl/cnblogs_crawl/spiders/cnblogs.py import scrapy from cnblogs_crawl.items import CnblogsCrawlItem from scrapy.http import Request class

日志等级与请求传参

日志等级: ERROR : 一般错误 WARNING : 警告 INFO : 一般的信息 DEBUG : 调试信息 默认的显示级别是DEBUG 可以在配置文件中settings中进行日志信息的指定输出:#指定日志信息的输出#LOG_LEVEL = 'DEBUG' #将日志信息写入到文件中进行存储LOG_FILE = 'log.txt' 二.请求传参 - 在某些情况下,我们爬取的数据不在同一个页面中,例如,我们爬取一个电影网站,电影的名称,评分在一级页面,而要爬取的其他电影详情在其二级子页面中.这