#连接自己的数据库 电影基本数据库表已上传可以下载 或者自己根据上一条博客的代码爬取后存到自己的数据库 有整个项目的资源可以下载 已上传flask+…
import pymysql import sys import requests import bs4 import re #连接 mysql,获取连接的对象 con = pymysql.connect(host='localhost', user='name', password='123456', port=3306, db='student') with con: cur = con.cursor()#仍然是,第一步要获取连接的 cursor 对象,用于执行查询 cur.execute("SELECT movies_address FROM movies_info")#类似于其他语言的 query 函数,execute 是 python 中的执行查询函数 rows = cur.fetchall()#使用 fetchall 函数,将结果集(多维元组)存入 rows 里面 mov_address=[] for row in rows: #依次遍历结果集,发现每个元素,就是表中的一条记录,用一个元组来显示 mov_address.append(row) def open_url(url): headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'} res=requests.get(url,headers=headers) return res def find_movies(res): soup=bs4.BeautifulSoup(res.text,'html.parser') #评论 movies_comment=[] targets=soup.find_all("div",class_='comment-item') for each in targets: movies_comment.append(each.p.span.text) return movies_comment #找出有多少页面 def main(): for i in range(10): #前十部 host = mov_address[i][0] #print(mov_address[2][0])#[0][0]代表第一个元素 [1][0]代表第二个元素 https://movie.douban.com/subject/1292720/ res = open_url(host) filename='E:\pythonimg\电影\\'+str(i)+'.txt' #这里保存影评地址 #print(mov_address[i][0]) info = [] for i in range(3): # 爬取3页评论 url = host + 'comments?start=' + str(20 * i) + '&limit=20&sort=new_score&status=P' res = open_url(url) info.extend(find_movies(res)) with open(filename, 'w', encoding='utf-8') as f: for each in info: f.write(each) if __name__=="__main__": main()