我正试图解决在链接和评论项中使用item_loader.add_css处理缺失值的问题。它应该是每项8个值,但它是6,并且不提取任何内容
我的代码是:
腐烂的spyder.py
class RottenSpiderSpider(scrapy.Spider):
name = 'rotten'
start_urls = ['https://www.rottentomatoes.com/m/toy_story/reviews?type=top_critics&sort=&page=2']
def parse(self, response):
# crawl page
for row in response.css('.content'):
item_loader = ItemLoader(item=ScraperottentomatoesItem(), selector=row)
item_loader.add_css('quote', '.the_review::text', re='\w+.+')
item_loader.add_css('links', '.review-link a::attr(href)')
item_loader.add_css('critic', '#content .articleLink::text')
yield item_loader.load_item()
items.py
class ScraperottentomatoesItem(scrapy.Item):
quote = scrapy.Field()
links = scrapy.Field()
critic = scrapy.Field()
以下是不带批评家的输出:
第一部分你说应该是8项。如果你看这个网站,上面写着“全面回顾”的超链接就是链接所在的位置。只有6个链接,所以这很好。对于第二部分,您提取的是文本而不是链接,因此您可以像其他部分一样对其进行更改
在这里做这个代码。这对我有用
以下是输出:
{'critic':['Sean p.的意思', “约翰·哈特尔”, “彼得·斯塔克”, “罗杰·埃伯特”, “丽塔·凯普莱”, “詹姆斯·贝拉迪内利”, “罗杰·摩尔”], '链接':['http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/1996/11/01/DD69735.DTL', “http://www.rogerebert.com/reviews/toy-story-1995”, “http://www.washingtonpost.com/wp-srv/style/longterm/movies/videos/toystory.htm”, “http://www.reelviews.net/php_review_template.php?identifier=46”, “http://www.ew.com/ew/article/0,,299671,00.html”, “http://www.orlandosentinel.com/entertainment/movies/orl-movie-review-toy-story-toy-story-2-3d,0,464068 0.故事'], “引用”:从技术上讲,《玩具总动员》几乎完美无缺, “迪斯尼的机智、奇妙的想象力,全是电脑生成的” 卡通片无疑是美国最新的假日电影之一 “城镇。”, “剧本,由拉塞特、皮特·多克特、安德鲁·斯坦顿和乔创作” 《兰夫特》中充满了聪明的噱头,让两位英雄相形见绌 “其他人的喉咙和快进的情节。”, “结果是一部电影的梦幻过山车。”, “看到工作室从中汲取了魔力,这是一个很好的节奏变化” “关于20世纪普通孩子安迪和他的父母的现代故事” “渴望取悦玩具。”, “关于《玩具总动员》的一大负面影响是迪斯尼的” “过度商业化”, “我很难想象在电影中会比在电影中更有趣” “玩具总动员,迪斯尼新的奇迹,这是第一部” “完全在计算机上制作的全长动画电影。”, “出色的配音表演,视觉双关语,所有这些加起来都是一种 “动画游戏改变者”。]}
相关问题 更多 >
编程相关推荐