Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用ItemLoader在item中放置链接?_Python_Web Scraping_Scrapy - Fatal编程技术网

Python 如何使用ItemLoader在item中放置链接?

Python 如何使用ItemLoader在item中放置链接?,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,我想用ItemLoader将链接保存到item中 基本上,我需要转换此代码: def parse(self, response): for casa in response.css('div.posting-card'): item = ZonapropItem() item['link'] = response.urljoin(casa.css('a.go-to-posting::attr(href)').get()) yield item 进入: 谢谢你的回答 你

我想用ItemLoader将链接保存到item中

基本上,我需要转换此代码:

def parse(self, response): 
for casa in response.css('div.posting-card'):
    item = ZonapropItem()
    item['link'] = response.urljoin(casa.css('a.go-to-posting::attr(href)').get())
    yield item
进入:

谢谢你的回答

你好(:您可以继续上一个问题

有两种方法:

  • 第一种方法是使用
    loader.add_value()
    方法和预先计算的值。例如:
这很简单

  • 第二种方法是使用
    MapCompose
    ,它会将参数中的函数应用于使用CSS选择器找到的每个提取项:

谢谢,是的,在上一个问题中问这个问题会更好,但我后来遇到了这个问题。因为我是新来的,我还没有弄清楚我是否可以更新我的问题)无论如何,非常感谢。斯帕西博布尔肖酒店
def(parse, response):
for casa in response.css('div.posting-card'):
    loader = ItemLoader(ZonapropItem(),casa)
    loader.add_??? ('link', '???')
    yield loader.load_item()
link = response.urljoin(casa.css('a.go-to-posting::attr(href)').get())
loader.add_value('link', link)
from scrapy.processors import MapCompose

loader.add_css('link', 'a.go-to-posting::attr(href)', MapCompose(response.urljoin))