Spider_douyin

1、打开抖音APP

 

 

2、点开一个用户

 

3、点击她的头像(带有+号的地方),查看它的主页

4、点击右上角,如下图所示:

5、点击转发,右上角,如下图所示:

6、获取短连接,如下图所示:

7、把复制的短连接放到写好的代码里面,就可以爬取这个小姐姐所有的短视频啦,如下图所示:

8、等待一会,小姐姐所有的视频都会被下载下来,保存到demo里面设置好的文件夹下

9、这样就?啦

代码demo:https://github.com/wangtao666666/Spider

### 使用Python实现抖音评论区的数据抓取 #### 环境配置与依赖安装 为了顺利进行抖音评论数据的抓取工作,需先准备好所需的环境以及必要的文件。主要使用的工具包括Selenium用于模拟浏览器行为完成登录操作;BeautifulSoup负责HTML文档解析;另外还有requests用来发送HTTP请求。 对于这些外部可以通过pip命令快速安装: ```bash pip install selenium beautifulsoup4 requests pymysql ``` #### 登录抖音并获取Cookies 利用Selenium可以很方便地模仿人类用户的交互动作来进行自动化的网页浏览活动,比如输入账号密码点击按钮等从而达到登陆目的。这里需要注意的是要提前下载对应版本的WebDriver驱动器并与本地已有的Chrome或其他浏览器相匹配才能正常使用。 ```python from selenium import webdriver import time def login_douyin(): driver_path = 'path_to_chromedriver' # 替换成自己的chromedriver路径 options = webdriver.ChromeOptions() prefs = {"profile.default_content_setting_values.notifications": 2} options.add_experimental_option("prefs", prefs) browser = webdriver.Chrome(executable_path=driver_path, chrome_options=options) try: url = "https://www.douyin.com/" browser.get(url) # 这里假设已经完成了手动扫码登录流程 cookies_list = browser.get_cookies() cookie_dict = {} for cookie in cookies_list: cookie_dict[cookie['name']] = cookie['value'] return cookie_dict finally: time.sleep(5) # 给予足够的时间让用户能够看到页面加载情况 browser.quit() cookies = login_douyin() print(cookies) ``` 这段代码实现了打开指定网址、等待用户自行完成扫描二维码验证身份的过程,并最终收集当前session下的所有cookie信息返回给调用者[^1]。 #### 抓取视频详情页内的评论列表 当获得了有效的登录凭证之后就可以向特定的目标URL发起GET请求访问想要查看的具体作品链接地址了,在此期间记得带上之前获得过的认证参数确保服务器端认可此次连接合法性。接着就是运用正则表达式或者是XPath语法配合lxml/bs4这样的DOM树遍历类定位到含有实际文本内容的位置节点进而读取出所需的信息片段。 ```python import json import re import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', } video_url = 'example_video_page_link' response = requests.get(video_url, headers=headers, cookies=cookies) pattern = r'<script id="RENDER_DATA" type="application/json">(.*?)</script>' match_result = re.search(pattern, response.text, flags=re.S | re.M) if match_result is not None: raw_data_str = match_result.group(1).strip().replace('false', '"False"', ).replace('true', '"True"') data_json_obj = json.loads(raw_data_str)['7']['struct'][0]['comment'] for item in data_json_obj[:]: comment_id = item.get('id') author_name = item.get('author').get('nickname') or '' content = item.get('content') or '' print(f"{author_name}: {content}") ``` 上述脚本展示了如何从响应体中筛选出包含评论部分JSON字符串再转换成易于处理的对象形式最后逐条打印输出作者名言及其所说的话。 #### 数据持久化至关系型数据(MySQL为例) 考虑到后期可能要做进一步统计分析所以建议把临时取得的结果集导入到支持事务机制的关系型DBMS里面去长期保存起来供随时查询检索之便。下面给出了一段简单的例子说明怎样借助PyMySQL模块建立远程连接并将记录一条接一条写入表单之中。 ```sql CREATE TABLE IF NOT EXISTS douyin_comments ( `id` INT AUTO_INCREMENT PRIMARY KEY, `comment_id` VARCHAR(32), `author_name` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci , `content` LONGTEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ); ``` ```python import pymysql.cursors connection_config = dict( host='localhost', port=3306, user='root', password='', database='douyin_spider', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor ) with pymysql.connect(**connection_config) as connection: with connection.cursor() as cursor: sql_insert_template = """ INSERT INTO `douyin_comments`(comment_id , author_name,content ) VALUES (%s,%s,%s ) ON DUPLICATE KEY UPDATE ; """ batch_params = [] for entry in parsed_comment_items: param_tuple = tuple([entry[k] for k in ('comment_id ', 'author_name', 'content')]) batch_params.append(param_tuple ) affected_rows_count = cursor.executemany(sql_insert_template,batch_params) connection.commit() ``` 以上即为整个基于Python语言构建针对抖音社交平台上公开发布的动态消息下方留言区域实施批量采集工作的基本思路和技术要点概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值