python - 使用 Scraperwiki (Python) 抓取 Google 图表脚本

标签 python web-scraping scraperwiki

我刚刚开始使用 Python 中的 Scraperwiki 进行抓取。已经弄清楚如何从页面上抓取表格,每月运行抓取器并将结果保存在彼此之上。非常酷。

现在我想要scrape this page有关 Android 版本的信息并每月运行该脚本。特别是,我想要版本、代号、API 和发行版的表格。这并不容易。

该表是通过包装 div 调用的。有什么办法可以抓取这些信息吗?我找不到任何解决方案。

B 计划是抓取可视化内容。我最终需要的是代号和百分比,所以这就足够了。此信息可以在 Google Chart 脚本的 HTML 中找到。

Google Chart API script

但是我无法使用“增强”的 HTML 找到此信息。我有a public scraper over here 。您可以对其进行编辑以使其正常工作。

谁能解释一下我该如何解决这个问题?一个能对正在发生的事情发表评论的工作爬虫就太棒了。

最佳答案

这确实是一个困难的情况,因为正如 kisamoto 提到的,数据位于嵌入式 JavaScript 中,而不是像您期望的那样位于单独的 JSON 文件中。 BeautifulSoup 是可能的,但它涉及一些丑陋的字符串处理:

last_paragraph = soup.find_all('p', style='clear:both')[-1]
script_tag = last_paragraph.next_sibling.next_sibling
script_text = script_tag.text

lines = script_text.split('\n')
data_text = ''
for line in lines:

    if 'SCREEN_DATA' in line: break
    data_text = data_text + line

data_text = data_text.replace('var VERSION_DATA =', '')
# delete semicolon at the end
data_text = data_text[:-1]

data = json.loads(data_text)
data = data[0]
print data['data']

输出:

[{u'perc': u'0.1', u'api': 4, u'name': u'Donut'}, ... ]

关于python - 使用 Scraperwiki (Python) 抓取 Google 图表脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16373650/

相关文章:

python - 在 PyPy3 中,在本地命名空间中编写代码比在全局命名空间中编写代码慢

python - 将轮类数据(开始和结束时间)拆分为每小时数据

python创建带有变量赋值且不重复的列表理解

python - 使用 Hadoop 进行股票市场数据分析

python-3.x - 在 Python 3.2 中使用 HTMLParser

windows - 如何在 Windows 上安装 Poppler?

python - 如何让 selenium 在 scraperwiki 上工作

javascript - 如何使用 Puppeteer 抓取 Reddit 页面?

python - 尝试/除了抓取 URL 末尾带有 3 个随机数字的网站

python - 使用 lxml 解析 RSS 时出现编码错误