javascript - 使用 scrapy python 从 javascript 获取数据到 python

标签 javascript python scrapy web-crawler

如何使用 scrapy python 从 javascript 内容中获取数据? JavaScript 看起来像这样

<script type="text/javascript">
  var ad_reply_url = "http://www2.mudah.my/ar/send/0?ca=3_s&id=49825097&l=0";
  var mcvl = "";
  var images = [
     'http://img.rnudah.com/images/13/133608119523265.jpg', 
     'http://img.rnudah.com/images/13/135608116569903.jpg', 
     'http://img.rnudah.com/images/13/137608113616541.jpg', 
     'http://img.rnudah.com/images/13/139608119186498.jpg'
  ];
 var thumbnails = [
    'http://img.rnudah.com/thumbs/13/133608119523265.jpg',
    'http://img.rnudah.com/thumbs/13/135608116569903.jpg',
    'http://img.rnudah.com/thumbs/13/137608113616541.jpg',
    'http://img.rnudah.com/thumbs/13/139608119186498.jpg'
 ];</script>

所以,我想要的是。我想要来自 var images 的数据并像这样打印该数据

['http://img.rnudah.com/images/13/133608119523265.jpg','http://img.rnudah.com/images/13/135608116569903.jpg', 'http://img.rnudah.com/images/13/137608113616541.jpg','http://img.rnudah.com/images/13/139608119186498.jpg' ];

有人可以帮助我吗?谢谢。

最佳答案

我没有使用 Scrapy Python,只是使用常规 Python。 但这非常简单:

代码示例:

import ast
import re

page_source = '''
<script type="text/javascript">
  var ad_reply_url = "http://www2.mudah.my/ar/send/0?ca=3_s&id=49825097&l=0";
  var mcvl = "";
  var images = [
     'http://img.rnudah.com/images/13/133608119523265.jpg',
     'http://img.rnudah.com/images/13/135608116569903.jpg',
     'http://img.rnudah.com/images/13/137608113616541.jpg',
     'http://img.rnudah.com/images/13/139608119186498.jpg'
  ];
 var thumbnails = [
    'http://img.rnudah.com/thumbs/13/133608119523265.jpg',
    'http://img.rnudah.com/thumbs/13/135608116569903.jpg',
    'http://img.rnudah.com/thumbs/13/137608113616541.jpg',
    'http://img.rnudah.com/thumbs/13/139608119186498.jpg'
 ];</script>
'''

variables = re.findall('(?si)var(.*?);', page_source)

var_collection = {}
for var in variables:
    var = var.strip()
    var_key = var.split(' = ')[0]
    var_value = ast.literal_eval(var.split(' = ')[1])
    var_collection.update({var_key: var_value})

print(var_collection['images'])

输出:

['http://img.rnudah.com/images/13/133608119523265.jpg', 'http://img.rnudah.com/images/13/135608116569903.jpg', 'http://img.rnudah.com/images/13/137608113616541.jpg', 'http://img.rnudah.com/images/13/139608119186498.jpg']

相关: https://stackoverflow.com/a/18108644/295246

关于javascript - 使用 scrapy python 从 javascript 获取数据到 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40492705/

相关文章:

python - ProgrammingError,Flask with postgres 和 sqlalchemy

javascript - 如何使用 Scrapy 和 Splash 抓取基于 AJAX 的网站?

javascript - 使用带有多个起始 URL 的 selenium 和 Scrapy 抓取动态内容

python - 如何使用 mpi4py 收集长度不等的数组

python - 使用 python scrapy 提取作为表一部分的 div 标签条目

javascript - 单击事件触发两次(不是 jQuery)

javascript - 将 MVC ViewModel 转换为外部 .js 文件中的 Javascript 对象

javascript - 传递一个函数

javascript - Wagtail/Hallo.js - 添加插件但不保存修改的内容

python - lxml.xpath 中的正则表达式