我是一个非常新手,希望您能轻松点。我已经谷歌了如何解决这个问题,但我得到的每个答案都适用于Xpath,而我正在使用CSS。
我正在按照这个教程进行操作,并到达了这一步:
但结果却是这样的:
现在,我需要解决3个问题来处理输出/提取:\r\n、大的空白和尝试提取带重音的单词时出现的错误(Resident Evil 6: O Último Capítulo 的原始文本为 Resident Evil 6: O Último Capítulo)。
这个网站源代码与我研究过的其他网站不同的一件事是,在写标题之前会先跳过一行。
我正在按照这个教程进行操作,并到达了这一步:
import scrapy
class CinemaSpider(scrapy.Spider):
name = "cinema"
allowed_domains = ['cineroxy.com.br']
start_urls = [
'http://cineroxy.com.br/programacao-brisamar',
]
def parse(self, response):
movie_names = response.css('.titulo p::text').extract()
for movie_name in movie_names:
yield {
'name': movie_name
}
我已经成功执行了,它会获取信息并创建一个json文件:
C:\Python27\Scripts>scrapy runspider cinema_scraper.py -o movies.json
但结果却是这样的:
[
{"name": "\r\n A Bailarina\r\n "},
{"name": "\r\n Assassins Creed - O Filme\r\n "},
{"name": "\r\n Cinquenta Tons Mais Escuros\r\n "},
{"name": "\r\n Minha M\u00e3e \u00e9 uma Pe\u00e7a 2\r\n "},
{"name": "\r\n Moana - Um Mar de Aventura\r\n "},
{"name": "\r\n Os Penetras 2 - Quem D\u00e1 Mais?\r\n "},
{"name": "\r\n Quatro Vidas de Um Cachorro\r\n "},
{"name": "\r\n Resident Evil 6: O \u00daltimo Cap\u00edtulo\r\n "},
{"name": "\r\n xXx: Reativado\r\n "}
]
现在,我需要解决3个问题来处理输出/提取:\r\n、大的空白和尝试提取带重音的单词时出现的错误(Resident Evil 6: O Último Capítulo 的原始文本为 Resident Evil 6: O Último Capítulo)。
这个网站源代码与我研究过的其他网站不同的一件事是,在写标题之前会先跳过一行。
<a href='../filme/resident-evil-6-o-ultimo-capitulo'>
<img id="cphConteudo_rptBusca_imgFilme_7" title="Resident Evil 6: O Último Capítulo" class="img" src="http://www.cineroxy.com.br/suiteinstitucional/arquivos/filmes/040920161914411.jpg" />
<div class="titulo">
<p>
Resident Evil 6: O Último Capítulo
</p>
</div>
<div class="passar-mouse">
clique para ver os horários <img src="Arquitetura/Imagens/Icones/drop.png" alt="" />
</div>
</a>
对于篇幅较长且可能存在错误的帖子,我感到抱歉。
提前感谢您的帮助。
\uXXXX
序列不是错误,而是有效的JSON语法,一种表示非ASCII字符的简单方式。符合JSON标准的读取器/程序可以很好地理解这些\uXXXX
序列;然而,人类读者可能无法理解。在其中一个答案中提到的FEED_EXPORT_ENCODING
设置将编写UTF-8编码的字符,而不需要进行\uXXXX
转义。许多文本编辑器/查看器将从JSON文本文件中解码\xc3\x9a
序列(\u00da
的UTF-8编码)为Ú,但仍然被解释。人类仍然很难理解\xc3\x9a
。 - paul trmbrth