我刚刚开始使用 Python 中的 Scraperwiki 进行抓取。已经弄清楚如何从页面上抓取表格,每月运行抓取器并将结果保存在彼此之上。非常酷。
现在我想要scrape this page有关 Android 版本的信息并每月运行该脚本。特别是,我想要版本、代号、API 和发行版的表格。这并不容易。
该表是通过包装 div 调用的。有什么办法可以抓取这些信息吗?我找不到任何解决方案。
B 计划是抓取可视化内容。我最终需要的是代号和百分比,所以这就足够了。此信息可以在 Google Chart 脚本的 HTML 中找到。
但是我无法使用“增强”的 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/