(爬虫)B站,youtube,facebook视频播放量抓取接口分享

1 B站

B站的接口很好找,不需要带Header,参数,返回很明确

1.1 视频列表接口: https://api.bilibili.com/x/space/arc/search?mid=32820037&ps=30&tid=0&pn=2&keyword=&order=pubdate&jsonp=jsonp.

(爬虫)B站,youtube,facebook视频播放量抓取接口分享_第1张图片
返回结构如下,返回参数包含评论数,播放数,标题,创建时间,视频长度,弹幕数量,视频id等
(爬虫)B站,youtube,facebook视频播放量抓取接口分享_第2张图片
除B站以下内容在外网,需要点东西,然后idea使用proxy,我本地不生效,在httpclient中设置也一样

CloseableHttpClient httpClient = HttpClientBuilder.create().build();
HttpHost proxy = new HttpHost(IP, PORT);
RequestConfig reqConfig = RequestConfig.custom().setProxy(proxy).build();
HttpGet httpGet = new HttpGet(URL);
httpGet.setConfig(reqConfig);
CloseableHttpResponse response = httpClient.execute(httpGet);

2 YOUTUBE

2.1 视频列表接口(默认分页30): https://www.youtube.com/browse_ajax?continuation=***.

请求URL需要带上continuation
请求头需要带下图的x-youtube-client-version、x-youtube-client-name
(爬虫)B站,youtube,facebook视频播放量抓取接口分享_第3张图片
返回参数item是个视频数组,默认30个
(爬虫)B站,youtube,facebook视频播放量抓取接口分享_第4张图片

2.2 视频详情接口: https://www.youtube.com/watch?v=视频id.

请求需要带上user-agen
这里返回的就是页面而不是json了,如下所示
(爬虫)B站,youtube,facebook视频播放量抓取接口分享_第5张图片
取出关键字ytInitialData内的json(整个页面就两个地方很好找)
(爬虫)B站,youtube,facebook视频播放量抓取接口分享_第6张图片

2.3 视频列表第一页如何获取:

YOUTUBE视频列表的第一页不是通过这个列表接口获取的但是也可以通过此列表接口获取内容,需要观察2,3,4页面的URLcontinuation参数推测尝试出来,参考下图经过测试成功获取第一页默认加载内容
(爬虫)B站,youtube,facebook视频播放量抓取接口分享_第7张图片
请求返回
(爬虫)B站,youtube,facebook视频播放量抓取接口分享_第8张图片
验证
(爬虫)B站,youtube,facebook视频播放量抓取接口分享_第9张图片

2.4 如何获取html元素内部值:

这里使用jsoup获取页面内的元素,后获得json获取需要的数据


    org.jsoup
    jsoup
    1.10.3

 Document parse = Jsoup.parse("返回页面");
 //ytInitialData内容在
                    
                    

你可能感兴趣的:((爬虫)B站,youtube,facebook视频播放量抓取接口分享)