【发布时间】:2021-01-08 09:18:47
【问题描述】:
我正在尝试使用 requests 和 re 模块从网页中解析交易详情。我希望抓取的内容在页面源代码中的某个脚本标记内。当我尝试下面的尝试时,我得到了一部分内容。但是,我希望获得从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。
如何通过requests and re获取上述内容?
【问题讨论】:
-
不要发布其他来源的输出/代码。如果该来源停止工作,那么问题/答案将在未来变得不那么有用。如果问题需要任何代码/输出,请将其发布在问题正文中的单独代码块中。
-
如果我尝试这样
re.findall(r"dealDetails[^{]+(.*?)responseMetadata",r.text,re.DOTALL),它可以工作,但包括我不想要的最后一个,和"。但是,我希望首先使用正则表达式获得所需的部分,而不需要后处理。 -
我看到这个帖子很晚了,你的问题已经解决了还是你还在寻找解决方案?
-
不,还没有解决。感谢您询问@Robo Mop。
标签: python python-3.x web-scraping python-requests re