【发布时间】:2020-11-06 20:26:49
【问题描述】:
我是网络抓取和正则表达式语法的新手。 我正在尝试从 YouTube 搜索 html 文件中查找 videoIds 的所有匹配项。我无法使用 BeautifulSoup 的解析来做到这一点,因为它们最近被移到了 JS 脚本中。所以我正在尝试使用正则表达式。
它们在 JS 脚本中显示为:"videoId":"jNQXAC9IVRw"
请注意,ID 始终为 11 个字符。
到目前为止,我正在尝试:
html = urllib.request.urlopen(url).read().decode('utf-8')
pattern = re.compile('<quote>(\w{11})<quote>')
matches = re.findall(pattern, html)
for i in range(3):
print(matches[i])
但它不会找到任何东西。 我希望有一个 ID 列表,例如:
lYtFMmByfJk
d2RlyAz6VQ
utTAphB1y4Y
我做错了什么?
【问题讨论】:
-
我认为
<quote>不会出现在 JavaScript 中。尝试使用更独特的模式,例如pattern = re.compile('videoId":"(.+?)"')
标签: python regex web-scraping