import requests import re import pymysql def save_sql(content): con = pymysql.connect( host='localhost', port='3306', user='root', password='123456', db='test' ) db = con.cursor() sql = f'insert into danmu values (content)' db.execute(sql) # 数据库执行sql con.commit() db.close() con.close() url="https://api.bilibili.com/x/v1/dm/list.so?oid=1147917986" headers={ 'referer':'https://www.bilibili.com/', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.37' } response=requests.get(url=url,headers=headers) #解决网页数据乱码 response.encoding = 'utf-8' print(response.text) content_list=re.findall('<d p=".*?">(.*?)</d>',response.text) print(content_list) #for 循环遍历弹幕 for content in content_list: with open('弹幕.text', mode='a', encoding='utf-8') as f: f.write(content) f.write('\n') print(content) save_sql(content)
时间: 2024-03-15 14:43:11 浏览: 15
这段代码是一个从B站获取弹幕并保存到MySQL数据库中的程序。程序先使用requests库从B站获取指定视频的弹幕信息,然后使用正则表达式从返回的数据中提取出所有的弹幕文本内容。接着,程序使用for循环遍历所有的弹幕,并将每条弹幕分别写入文件和MySQL数据库中。
其中,save_sql函数是用于将弹幕保存到MySQL数据库的函数。在函数中,程序使用pymysql库连接到指定的MySQL数据库,并执行一条INSERT语句将弹幕文本内容插入到指定的数据表中。
需要注意的是,如果您需要运行这段代码,需要安装requests库和pymysql库。另外,您需要将代码中的数据库连接信息修改为您自己的数据库连接信息。
相关问题
import requests if __name__=="__main__": url ='https://www.sogou.com/' requests.get()
在您的代码中,您需要在 `requests.get()` 函数中传入一个 URL 参数来发起 GET 请求。以下是一个示例,演示如何使用 `requests` 库发送 GET 请求:
```python
import requests
if __name__ == "__main__":
url = 'https://www.sogou.com/'
response = requests.get(url)
print(response.status_code) # 打印响应状态码
print(response.text) # 打印响应内容
```
在上面的示例中,`response` 变量将保存从指定 URL 获取的响应对象。您可以使用 `response.status_code` 获取响应的状态码,使用 `response.text` 获取响应的内容。记得替换 `url` 变量的值为您要请求的实际 URL。
def get_mnnu_text(url): response = requests.get(url) soup = BeautifulSoup(response.content.decode('utf-8'), 'html.parser') content = soup.find_all('p') text = '\n'.join([p.get_text() for p in content]) 返回文本 URL = 'http://www.mnnu.edu.cn/' 文本 = get_mnnu_text(URL) 打印(文本) def save_to_navicat(text): connection = pymysql.connect( host='localhost', user='root', password='root', database='pa', charset='utf8' ) try: 使用connection.cursor()作为光标: SQL = “INSERT INTO () VALUES (%S)” encoded_text = TEXT.ENCODE('UTF8') cursor.execute(sql, (encoded_text,)) connection.commit() 最后: connection.close() save_to_navicat(text),我要修改url为 https://movie.douban.com/subject/30391186/comments?status=P
好的,你可以按照以下方式修改代码:
```python
import requests
from bs4 import BeautifulSoup
import pymysql
def get_movie_comments(url):
response = requests.get(url)
soup = BeautifulSoup(response.content.decode('utf-8'), 'html.parser')
content = soup.find_all('span', class_='short')
comments = '\n'.join([c.get_text() for c in content])
return comments
url = 'https://movie.douban.com/subject/30391186/comments?status=P'
comments = get_movie_comments(url)
def save_to_navicat(text):
connection = pymysql.connect(
host='localhost',
user='root',
password='root',
database='pa',
charset='utf8'
)
try:
with connection.cursor() as cursor:
sql = "INSERT INTO `my_table` (`content`) VALUES (%s)"
encoded_text = text.encode('utf8')
cursor.execute(sql, (encoded_text,))
connection.commit()
finally:
connection.close()
save_to_navicat(comments)
```
这样就可以获取豆瓣电影《误杀》的所有评论并保存到数据库中了。