爬取哔哩哔哩热点搜索的小demo(练手)python
2021/7/22 14:12:12
本文主要是介绍爬取哔哩哔哩热点搜索的小demo(练手)python,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
爬取流程
- 先找到浏览器标识头(User-Agent也可以网上搜这个头子)
红圈是头,复制出来 - (关键)找传回数据的url
目标网站:b站搜索
爬取这个:
开始我直接通过网页渲染数据爬取框内内容,发现这些内容是ajax请求渲染,网站加载完成才渲染出数据,不能第一时间爬取到,然后我开始另辟蹊径。。。找了好久终于找到
找到传回数据后面就好办了。。。。 - 代码实现
先导需要的库 ,mysql连python用到: pip install pymysql
#python程序 #字典 import requests import json import pymysql.cursors #加头标识 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36' } product=[] #获取传回数据 resp=requests.get('https://s.search.bilibili.com/main/hotword?mid=&buvid=98E676EF-F586-403E-8440-52A6836FA68713451infoc&jsonp=jsonp&callback=jsonCallback_bili_58910703464582290',headers=headers) rest=resp.text.replace('jsonCallback_bili_58910703464582290(','').replace(')','') #转换json键值对 json_data=json.loads(rest) comments=json_data["list"] # #把想要的数据装入列表中 proDict=[] for item in comments: proDict.append(item['keyword']+' ') product.extend(proDict) # 把数组里所有数据都转入字符串中(这里是学习用的,可以去除) p=''.join(proDict) print(p) # 数据入库 # 连接数据库 conn = pymysql.connect( host='127.0.0.1', port=3306, user='root', passwd='root', db='bilidb', charset='utf8', cursorclass=pymysql.cursors.Cursor, ) cur=conn.cursor() #这里用replace解决数据入库时重复数据的问题,注意hotword字段要设置唯一约束 for item in proDict: cur.execute("replace into hot(hotword) values('%s')" %(item)) #事务提交(这里尝试性的用了一个异常处理,嘿嘿可以去掉) try: conn.commit() except AttributeError: print("错误") cur.close()
数据库结构
数据库上记得把字段设置编码方式为utf-8,以解决中文乱码问题。
这篇关于爬取哔哩哔哩热点搜索的小demo(练手)python的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享
- 2024-11-06Python 基础编程入门教程
- 2024-11-05Python编程基础:变量与类型