如何解决无法使用请求解析页面源中的某些内容并重新
我正在尝试使用请求和重新模块来解析网页上的交易详细信息。我希望抓取的内容在页面源代码中的某些脚本标签内。当我尝试下面的尝试时,我得到了一部分内容。但是,我希望获得从dealDetails
到responseMetadata
的全部内容。
我尝试过:
import re
import requests
link = 'https://www.amazon.co.uk/gp/deals?ref_=nav_cs_gb'
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/85.0.4183.102 Safari/537.36"}
r = requests.get(link,headers=headers)
deals = re.findall(r"dealDetails[^{]+(.*?}),[\s\S]+responseMetadata",r.text,re.DOTALL)[0]
print(deals)
它当前产生的输出是this。
我希望获取的输出是this。
如何使用请求获取并重新获得上述内容?
解决方法
哎呀,让我们假设我不是白痴,我没有混淆想要的输出与得到的输出。
继续前进,这是我所做的:
\"dealDetails\"\s*:\s*\{[\n\r\s]+(.+?)(?=,?[\n\r\s]+\"responseMetadata\")
所示
说明:
我正在使用正向前行,它告诉正则表达式在某个位置处,应该在文本中跟随该位置。在我们的情况下,匹配应在以下位置结束:逗号,多个换行符和空格,最后是"responseMetadata"
。正如您在提供的链接中看到的那样,整个匹配一直是DealDetails直到结束,并且第二组是您想要的输出。
再次,让我们假设我无法阅读,这就是为什么我搞砸了您得到的输出与预期的结果
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。