爬虫-python实现的抓取腾讯视频所有电影

用python实现的抓取腾讯视频所有电影的爬虫

# -*- coding: utf-8 -*-
import re
import urllib2
from bs4 import BeautifulSoup
import string, time
import pymongo
  
NUM     = 0         #全局变量,电影数量
m_type  = u''       #全局变量,电影类型
m_site  = u'qq' #全局变量,电影网站
  
#根据指定的URL获取网页内容
def gethtml(url):
    req = urllib2.Request(url)
    response = urllib2.urlopen(req)
    html = response.read()
    return html
  
#从电影分类列表页面获取电影分类
def gettags(html):
    global m_type
    soup = BeautifulSoup(html)      #过滤出分类内容
    #print soup
    #<ul class="clearfix _group" gname="mi_type" gtype="1">
    tags_all = soup.find_all('ul', {'class' : 'clearfix _group' , 'gname' : 'mi_type'})
    #print len(tags_all), tags_all
    #print str(tags_all[1]).replace('\n', '')
  
    #<a _hot="tag.sub" class="_gtag _hotkey" href="http://v.qq.com/list/1
  • 7
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是使用 Python 抓取腾讯视频弹幕的步骤: 1. 打开腾讯视频网站,找到需要抓取弹幕的视频。 2. 进入视频播放页面,按 F12 打开开发者工具,选择「网络」选项卡。 3. 在开发者工具中输入弹幕发送区的内容,点击发送按钮,观察网络请求的情况。通常情况下,会有一个 POST 请求发送弹幕数据,返回弹幕数据的 URL。 4. 使用 Python 发送与浏览器相同的 POST 请求,获取弹幕数据。 5. 解析弹幕数据,获取需要的信息。 以下是具体的代码实现: ```python import requests import json # 腾讯视频弹幕接口 url = 'https://mfm.video.qq.com/danmu?otype=json&target_id=xxx&timestamp=xxx&count=xxx&second_count=xxx&session_key=xxx' # 替换为需要抓取弹幕的视频 target_id 和 session_key target_id = 'xxxxxxx' session_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' # 获取弹幕数据 def get_danmu_data(): # 替换为当前时间戳 timestamp = 'xxxxxxx' # 替换为需要抓取的弹幕数量 count = 'xxxxxxx' # 替换为需要抓取的二级弹幕数量 second_count = 'xxxxxxx' headers = { 'referer': 'https://v.qq.com/', 'cookie': 'pgv_pvi=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; pgv_si=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;' } headers['cookie'] += 'pgv_pvid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;' url_with_params = url.replace('xxx', timestamp).replace('xxx', count).replace('xxx', second_count).replace('xxx', session_key).replace('xxx', target_id) response = requests.post(url_with_params, headers=headers) data = json.loads(response.content.decode('utf-8')) return data # 解析弹幕数据 def parse_danmu_data(data): for item in data['comments']: print(item['content']) # 测试 if __name__ == '__main__': data = get_danmu_data() parse_danmu_data(data) ``` 注意:该代码仅供学习参考,请勿用于非法用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值