Public | Automated Build

Last pushed: 4 months ago
Short Description
parser for URL
Full Description

URL Parser

API

请求

POST /parse

参数

url=url_string

说明:url 需要以 http/https 开头

输出

正常情况

{
    "card": {
        "duration": null,
        "short_desc": "茜与小太郎。初三时第一次被分到同班,相识的两人。同班同学、社团伙伴、教师、父母……与周围的关联,自己的成长。在那个一边被变化与不安追着,一边慌慌张张地向前飞奔的季节之中,稚嫩而又令人眩目的青春期...",
        "thumbnail": "http://i0.hdslb.com/bfs/bangumi/5ce66f68d54052e3a305524b9b06a76977e974fc.jpg_124x172.jpg",
        "title": "月色真美",
        "url": "http://bangumi.bilibili.com/anime/5989/play"
    }
}

url 不是 http/https 开头

{
    "code": "bad_request",
    "status": 400
}

部署方法

  1. 使用 newrelic.tpl 配置 newrelic.ini,填写 newrelic key,其他的根据需求修改,此步骤如果哪有 newrelic 可以跳过。
  2. 创建 urlparser/settings/local_settings.py 文件,配置的默认参数可以看 urlparser/settings/base.py,然后需要在 local_settings.py 中添加下面的配置,其他的参数按需填写
PHANTOM_HOSTS = {
    'music.163.com': {'frame_id': 'g_iframe'}
}

CACHE_REDIS_HOST = 'redis' 
# 此处 Host 使用 redis 为配合 docker-compose 的写法,详情见 docker-compose.yml
  1. 构建 docker 镜像
docker build -t urlparser:v1 .
  1. 端口映射和配置文件映射都已经放到了 docker-compose.yml 文件中,自己可以按照自己部署的方法使用 docker 或者 docker-compose 启动
    docker-compose up
    

如果你的本机器下载太慢,可以修改命令行里面的代理地址来使用自己的本机代理加速

docker build -t urlparser:v1 --build-arg HTTP_PROXY=http://192.168.65.1:1235 --build-arg HTTPS_PROXY=http://192.168.65.1:1235 .

调试

GET /debug

访问这里可以进行简单的 url 测试

配置参数

# 国内外请求使用代理的情况
# 代理支持 http(需要支持 CONNECT 才能连接 https 网站) 和 socks5,填写格式如下
# ['http://user:password@112.25.41.136:80', 'socks5://myproxy:9191']
MAINLAND_PORIES = None
OVERSEAS_PORIES = None

# 爬虫爬取时的 retry 和每次请求的超时时间
CRAWLER_RETRY = 3
CRAWLER_TIMEOUT = 20

# redis 缓存配置
CACHE_TYPE = 'redis'
CACHE_REDIS_HOST = 'localhost'
CACHE_REDIS_PORT = 6379
CACHE_REDIS_DB = 0
CACHE_KEY_PREFIX = 'url:'
CACHE_TIMEOUT = 300

# PhantomJS 抓取的配置
PHANTOM_HOSTS = {
    'music.163.com': {'frame_id': 'g_iframe'}
}

其他说明

  • 需要 js 渲染后抓取的页面的 drive 目前使用的是默认的 PhantomJS,可以换到 Firefox 或者 Chrome,不过相关的镜像里面需要安装 Chrome/Firefox 浏览器
  • PhantomJS 暂时不支持走代理,暂时只找到开启进程时跑代理的方法
  • 部分视频音乐网站的版权内容需要登录才能播放,抓取到的是 404 页面
  • youku 视频网页中没有封面图
Docker Pull Command
Owner
kevinzhow
Source Repository

Comments (0)