【发布时间】:2018-07-21 16:22:38
【问题描述】:
在抓取时,我在提取的数据中获得了十六进制代码点,例如 \u0026#39;和\u003c。问题是在提取时,它们会通过在它们前面获得一个“\”来逃脱,例如 \\u0026#39 和 \\u003c。所以为了解决我使用的问题,
Tag = response.xpath("//script[contains(.,'" + SplitString + "')]").extract()
Tag = Tag[0].split(SplitString)
Tag = Tag[1].split("\"]")
Tag = codecs.getdecoder('unicode_escape')(Tag[0])[0]
但使用“unicode_escape”的问题在于它会改变一些特殊符号,例如????❤️????❤️????并将其转换为 🎈â¤ï¸Â🎈â¤ï¸Â🎈。那么我该如何解决呢?
源代码中的脚本如下:
<script nonce="q0OGvOrA73kvqp+Tk1lGIR+glJc">AF_initDataCallback({key: 'ds:4', isError: false , hash: '17', data:function(){return [[["Machineship"]
,null,null,[1]
,null,[["CBSqARUKEwiZjNDE8bDcAhWKI2gKHV8ZDtA\u003d"]
,["CBSqARUKEwiYjNDE8bDcAhWKI2gKHV8ZDtA\u003d"]],[[null,"Enjoy different kind of magazines and entertainment\u003cbr\u003e3 on the various supported classic rule.\u003cbr\u003e\u003cbr\u003e[Feature]\u003cbr\u003e- 1 to max 4 can join\u003cbr\u003e- You can select one of three different patterns.\u003cbr\u003e- :\u003cbr\u003ehttps://www.example.com"]
,[null,"Best \u0026quot;ad-free\u0026quot; entertainment for kids!\u003cbr\u003e????❤️????❤️????"]
]
,null,[[[null,2,[800,1200]............... </script>
我想从中提取:儿童最佳“无广告”娱乐!
????❤️????❤️????
【问题讨论】:
-
SplitString指的是什么?标签设置好后怎么处理?您能否提供一个简短的问题示例,我将尝试复制该问题以查看发生了什么。 -
SplitString 是字符组合,首先用于从网站的脚本标签中找到特定组合,然后将文本从该节点或特别是 SplitSrting = ("]\ n,[bullpup,)
-
我写了一个快速刮板,从一个网站上的
div读取&#39;????❤️????❤️????,我将它写入文件没有问题。我看不到您在哪里添加了\\u,但我认为您需要做的就是从字符串中的每次出现中删除一个斜杠。如果您将脚本添加到复制您的问题的问题中,我可能会看到发生了什么。 -
已添加脚本的sn-p。
-
澄清您将为该示例输入的 SplitString 内容是什么?
标签: python encoding web-scraping scrapy hex