我试图解决在链接和评论家项目中使用item_loader.add_css处理缺失值的问题。它应该是每个项目8个值,但它是6,并没有提取任何评论。
我的代码是:
rotten_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()
下面是没有评论家的输出:
2条答案
按热度按时间rqqzpn5f1#
第一部分你说应该是8个项目。如果你看网站的超链接,说"全面审查"是链接的地方。只有6个链接,所以很好。对于第二部分,您提取的是文本而不是链接,因此您可以像另一个一样对其进行更改。
在这里做这个代码。对我很有效。
下面是输出:
评论家:肖恩·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.story'],'引用':迪士尼的这部机智、想象力惊人、全电脑制作的卡通片"从技术上讲,《玩具总动员》几乎是完美无瑕的","无疑是"城里"最好的新假日电影"。"剧本由拉塞特、皮特·多克特、安德鲁·斯坦顿和乔·兰夫特撰写,充满了巧妙的插科打诨,使两个英雄针锋相对,情节快进。","结果是一部充满幻想的过山车般的电影","看到电影公司从这个"关于20世纪普通孩子安迪和他渴望取悦的玩具的现代故事"中汲取魔力,这是一个很好的节奏变化","《玩具总动员》的一个很大的负面影响是迪士尼的"过度商业化","我很难想象看电影会比看《玩具总动员》更有趣",这是迪士尼神奇的新电影,是第一部"完全用电脑制作的全长动画电影","出色的配音,视觉双关语,所有这些加在一起,"改变了动画游戏规则"。
ujv3wf0j2#
如果在审查中没有值,则应计数并将代码放入“none”(前两个)。同样,在批评的七项。所有的列表应该包含8个值在这个页面上正确刮取。列表Critic仍然有问题,不能将整个列表导出到JSON文件中,也不会出现在pycharm调试器上。谢谢你的帮助