javascript - 使用 python 在 javascript 中搜索字符串

标签 javascript python regex python-2.7 beautifulsoup

根据我之前的问题: how to fetch javascript contents in python

我尝试制作另一个脚本来从 JavaScript 中获取数据。当然是在获取网页内容之后。

但是,它只是没有显示我想要的内容。我想从页面的 javascript 中找到“content_id”。这是页面:- http://www.hulu.com/watch/815743

这就是我现在拥有的。

import re
import requests
from bs4 import BeautifulSoup
import os
import fileinput


Link = 'http://www.hulu.com/watch/815743'
q = requests.get(Link)
soup = BeautifulSoup(q.text)
#print soup
subtitles = soup.findAll('script',{'type':'text/javascript'})
pattern = re.compile(r'"content_id":"(.*?)"', re.MULTILINE | re.DOTALL)
script = soup.find("script", text=pattern)
print pattern.search(script.text).group(1)

我收到此错误:

AttributeError: 'NoneType' object has no attribute 'text'

知道如何解决这个问题..?

最佳答案

您的正则表达式模式存在两个问题:

  • 脚本内容中的引号用反斜杠转义,请考虑到这一点
  • 冒号后有一个空格

这是修复后的版本:

pattern = re.compile(r'\\"content_id\\":\s*\\"(.*?)\\"', re.MULTILINE | re.DOTALL)

对我有用,结果是 60585710

仅供引用,这是我正在执行的完整代码:

import re

import requests
from bs4 import BeautifulSoup

Link = 'http://www.hulu.com/watch/815743'
q = requests.get(Link)
soup = BeautifulSoup(q.text)

pattern = re.compile(r'\\"content_id\\":\s*\\"(.*?)\\"', re.MULTILINE | re.DOTALL)
script = soup.find("script", text=pattern)
print pattern.search(script.text).group(1)

关于javascript - 使用 python 在 javascript 中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32810273/

相关文章:

python - 从给定的项目列表创建子列表

javascript - 从字符串中删除日期

python - 删除部分路径

javascript - document.location.href 不更新共享点中的 onkeypress

javascript - Failed to execute 'pushState' on 'History' error when using window.history.pushState 函数

javascript - 来自另一个组件的 Angular2 调用函数

Javascript 打印 div 在 Safari 中不起作用

Python 列表问题

javascript - Flask - 组件模板结构?

java - 查找句子结尾的正则表达式