博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
爬取豆瓣,写入数据库
阅读量:5300 次
发布时间:2019-06-14

本文共 1816 字,大约阅读时间需要 6 分钟。

import pymysqlimport requestsfrom bs4 import BeautifulSoupbaseUrl = "https://movie.douban.com/top250?start=%d&filter="def get_movies(start):    url = baseUrl % start    lists = []    html = requests.get(url)    soup = BeautifulSoup(html.content, "html.parser")    items = soup.find("ol", "grid_view").find_all("li")for i in items:        movie = {}        movie["rank"] = i.find("em").text        movie["link"] = i.find("div","pic").find("a").get("href")        movie["poster"] = i.find("div","pic").find("a").find('img').get("src")        movie["name"] = i.find("span", "title").text        movie["score"] = i.find("span", "rating_num").text        movie["quote"] = i.find("span", "inq").text if(i.find("span", "inq")) else ""        lists.append(movie)return listsif __name__ == "__main__":    db = pymysql.connect(host="192.168.1.210",port=3306,user="root",password="ubuntu",db="mysql",charset="utf8mb4")    cursor = db.cursor()    cursor.execute("DROP TABLE IF EXISTS movies")    createTab = """CREATE TABLE movies(        id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,        name VARCHAR(20) NOT NULL,        rank VARCHAR(4) NOT NULL,        link VARCHAR(50) NOT NULL,        poster VARCHAR(100) NOT NULL,        score VARCHAR(4) NOT NULL,        quote VARCHAR(50)    ) character set = utf8"""    cursor.execute(createTab)    start = 0    while (start < 250):        lists = get_movies(start)for i in lists:            sql = "INSERT INTO movies(name,rank,link,poster,score,quote) VALUES(%s,%s,%s,%s,%s,%s)"            try:                cursor.execute(sql, (i["name"], i["rank"], i["link"], i["poster"], i["score"], i["quote"]))                db.commit()print(i["name"]+" is success")except:                db.rollback()        start += 25    db.close()

  

转载于:https://www.cnblogs.com/peterinblog/p/7182466.html

你可能感兴趣的文章
YTU 2734: 国家排序
查看>>
YTU 2625: B 构造函数和析构函数
查看>>
Notepad++ 16进制编辑功能
查看>>
Caffe: Cannot create Cublas handle. Cublas won't be available
查看>>
Linux 下 LXD 容器搭建 Hadoop 集群
查看>>
apache自带压力测试工具ab的使用及解析
查看>>
C语言作业3
查看>>
C#使用Xamarin开发可移植移动应用(2.Xamarin.Forms布局,本篇很长,注意)附源码
查看>>
koogra--Excel文件读取利器
查看>>
ASP.NET 使用ajaxupload.js插件出现上传较大文件失败的解决方法
查看>>
jenkins搭建
查看>>
C#中使用Split分隔字符串的技巧
查看>>
(springboot)freemarker(二)
查看>>
linux下golang gRPC配置详解
查看>>
mongodb 简单使用说明
查看>>
eclipse的调试方法的简单介绍
查看>>
OneAPM 云监控部署与试用体验
查看>>
加固linux
查看>>
wget 升级
查看>>
为什么需要大数据安全分析?
查看>>