如何用30行代码爬取Google Play 100万个App的数据

2024-05-05 07:45

1. 如何用30行代码爬取Google Play 100万个App的数据

基础工作:
内置元素选择器
序列化和存储数据
处理cookie、HTTP头这些东西的中间件
爬取 Sitemap 或者 RSS

等等

我的需求是爬取 Google Play 市场上的所有 App 的页面链接以及下载数量。

首先确保配置好 Python 2.7, MongoDB 数据库, 以及 Python 的 pip 包管理系统。

然后安装对应的 Python 包并且生成项目模板:
pip install scrapy scrapy-mongodb 
scrapy startproject app
cd app
scrapy genspider google

然后把 app/spider/google.py 换成下面的内容:
`# -*- coding: utf-8 -*-
import scrapy

from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.contrib.linkextractors import LinkExtractor
from app.items import GoogleItem


    class GoogleSpider(CrawlSpider):
        name = "google"
        allowed_domains = ["play.google.com"]
        start_urls = [
            'http://play.google.com/',
            'https://play.google.com/store/apps/details?id=com.viber.voip'
        ]
        rules = [
            Rule(LinkExtractor(allow=("https://play\.google\.com/store/apps/details", )), callback='parse_app',follow=True),
        ] #  CrawlSpider 会根据 rules 规则爬取页面并调用函数进行处理


        def parse_app(self, response):
            # 在这里只获取页面的 URL 以及下载数量
            item = GoogleItem()
            item['url'] = response.url
            item['num'] =  response.xpath("//div[@itemprop='numDownloads']").xpath("text()").extract()
            yield item

在 app/items 里添加下面的代码:
class GoogleItem(scrapy.Item):
    url = scrapy.Field()
    num = scrapy.Field()

在 app/setting.py 里面添加下面的代码
# 这里是配置 scrapy-mongodb 到数据库的连接,用于自动把爬取后的数据存入到 MongoDB
ITEM_PIPELINES = [
     'scrapy_mongodb.MongoDBPipeline',
]

MONGODB_URI = 'mongodb://127.0.0.1:27017'
MONGODB_DATABASE = 'scrapy'
MONGODB_COLLECTION = 'play'

然后,没有其他工作了。。连配置文件一共不到四十行。之后开启 MongoDB,在项目目录下运行
scrapy crawl google -s JOBDIR=app/jobs

然后就静静等它跑完吧。-s JOBDIR=app/jobs 参数的意思是把工作状态和已经爬取过的页面数据存到 app/jobs  目录下,即使中间中断了,也可以运行上面的命令从该目录恢复工作,而不用重新开始。

在我的 Linode 最低配的 VPS 上,它跑了大概 40 个小时,最后在 MongoDB 下的数据是有 156 万条记录。2015 年 1 月的新闻是 Google Play 上有 143 万款 App, 相信已经爬取了绝大多数 App 页面了。
`> use scrapy
switched to db scrapy
> db.play.count()
1564754
> db.play.find().limit(1)
 "_id" : ObjectId("55479d9da28a7c1cca449c23"), "url" : "https://play.google.com/store/apps/details?id=com.viber.voip", "num" : [ "  100,000,000 - 500,000,000  " ]() 
>

如何用30行代码爬取Google Play 100万个App的数据

2. 外汇 美元兑人民币的代码是多少

币种代码:美元:USD    人民币:CNY

3. 50元,求MT4外汇智能交易的程序代码。 用于分析历史数据,并选择合适的时间买入、平仓等

用于分析历史数据,并选择合适的时间买入、平仓等
这几句话的要求还不算高啊?

50元,求MT4外汇智能交易的程序代码。 用于分析历史数据,并选择合适的时间买入、平仓等

4. Google的股票代码是多少

谷歌是在美国纳斯达克上市的,没有在中国上市,所以就不存在股票代码。
谷歌公司(Google Inc.)成立于1998年9月4日,由拉里·佩奇和谢尔盖·布林共同创建,被公认为全球最大的搜索引擎公司。 谷歌是一家位于美国的跨国科技企业,业务包括互联网搜索、云计算、广告技术等,同时开发并提供大量基于互联网的产品与服务,其主要利润来自于AdWords等广告服务。



扩展资料:
2006年4月12日,Google公司行政总裁埃里克·施密特在北京宣布该公司的全球中文名字为“谷歌”(有报道指出取义“丰收之歌”,不过亦有报道指出取义“山谷之歌”)。同时,Google公司于2006年2月15日在台湾地区登记之分公司取名为“美商科高国际有限公司”。
此前,在一份中国国际经济贸易仲裁委员会域名争议解决中心裁决书中,公司被称为“科高公司”。该公司亦拥有“谷歌.cn”、“谷歌.中国”、“咕果.com”(但不拥有“咕果.中国”及“咕果.公司”)等中文域名。尽管中文用户在除其英文名外更常称Google为“古狗”或“狗狗”,
其中文域名“古狗.com”、“古狗.cn”、“古狗.中国”等均已被其他公司抢注。此外,Google在北京的分公司曾使用“咕果”作为合约签订以及网络招聘的中文译名。北京时间(UTC+8)2006年4月17日凌晨1时左右,Google 简体中文网站正式出现“谷歌”字样(其他地区依旧仅显示“Google”)。
参考资料来源:百度百科-Google
参考资料来源:百度百科-Google中国

5. Google的股票代码是多少

谷歌:GOOG

Google的股票代码是多少

6. 外汇MT4代码问题

2516/377/29,你可以与大师面对面沟通,里面都是MT4用户,不懂得你可以直接问

7. GOOGLE analytic的代码GA中,有个onClick的参数,请问在平台的哪个地方可以看到统计数据啊

前提是你的网站里对某个按钮或者链接加了监测 onclick=“_gaq.push(['_trackEvent','category',‘label’;'action','value')]”
然后在GA的content--Event  可以看到数据

GOOGLE analytic的代码GA中,有个onClick的参数,请问在平台的哪个地方可以看到统计数据啊

8. 在福汇外汇平台可以交易的贵金属有哪些?每种产品的代码是多少啊?

黄金XAUUSD,白银XAGUSD,钯金XPDUSD,白金XPTUSD,铜Copper,在这里面需要重点说一下铜这个产品,它是属于期货,有交割期的。如果你是做铜的交易的话,就需要关注一下这个交割期,免得造成不必要的损失。
最新文章
热门文章
推荐阅读