首页 > 数据库 >python爬虫数据存进mysql数据库

python爬虫数据存进mysql数据库

时间:2023-11-02 12:33:08浏览次数:27  
标签:count name get python 数据库 存进 mysql data

一、安装mysql和mysql workbench

我已经在电脑上安装了最新的mysql8.2.0,配置好环境变量,在命令提示符中以管理员的身份初始化并成功启动mysql数据库。

前期因为以前的mysql没有卸载干净,导致mysql一直无法启动服务。所以一定要保证以前的mysql卸载干净才能重新安装,以前没有安装过的忽略。

二、记好mysql用户名、密码和端口号

三、连接pycharm和mysql数据库

安装pymysql:文件----设置----python解释器----“+”----搜索“pymysql”----安装

四、我这里是选择爬取迪丽热巴的微博名字,关注量和粉丝量为例。

import json
import requests
import time
import pymysql

def get_html(url):
headers = {
"User-Agent": "************************", #开发者模式查询info?uid=1669879400就会出来user-agen
        "Referer": "https://weibo.com"
}
cookies = {
"cookie": "你的微博cookie"
}
response = requests.get(url, headers=headers, cookies=cookies)
time.sleep(3) # 加上3s 的延时防止被反爬
return response.text


def get_data(id):
url1 = "https://weibo.com/ajax/profile/info?uid={}".format(id)
html1 = get_html(url1)
responses1 = json.loads(html1) #将json数据解析成python对象
data1 = responses1['data']['user']
data = {} # 新建个字典用来存数据
data['screen_name'] = data1['screen_name'] # 名字
data['followers_count'] = data1['followers_count'] # 粉丝数量
data['friends_count'] = data1['friends_count'] # 关注数量
save_data(data)

# 连接到数据库
def save_data(data):
conn = pymysql.connect(
host='localhost',
port=3306, #mysql占用的端口号
user='你的用户名', #安装时关注自己的用户名
password='**********', #mysql服务登录密码,安装mysql时记得关注
database='test1' #在mysql中已经建立好的数据库名称
)
cursor = conn.cursor() #创建游标
sql = 'INSERT INTO Dear_dilireba(screen_name, followers_count, friends_count) VALUES (%s,%s,%s)' #Dear_dilireba是数据表,第一个括号是表中字段,第二个括号是数据属性
    cursor.execute(sql, (data['screen_name'],data['followers_count'],data['friends_count']))


# 关闭
cursor.close()
# 提交事务
conn.commit()
# 关闭数据库连接
conn.close()
print('插入操作成功!')


if __name__ == '__main__':
uid = ['1669879400']
for id in uid:
get_data(id)

五、mysql数据库查询

 

标签:count,name,get,python,数据库,存进,mysql,data
From: https://www.cnblogs.com/winlab406/p/17805136.html

相关文章

  • python题目:把JSON字符串里面的数据进行替换【杭州多测师_王sir】
    name ,时间戳,value这三个值要变 "tags":[{"values":[{"value": 43.6525,"quality": 192,"timestamp": 00}],"name": "/system/Template_2/Instance_8/system/Property_10",“type”: 12}]} import randomimp......
  • 一文学习mysql基础知识
    1.常见的数据库产品    1)oracle   --甲骨文    2)DB2      --IBM    3)SQLsever--微软    4)MySql    --AB->SUN->甲骨文2.名词解释    字段   --表中的列    记录   --表中的行3.登录远程数据库    1)打开一个终端窗......
  • mysqld got signal 11
    【1】mysql实例启动故障5.7.21-》5.7.42数据库升级后,启动发现错误日志如下2023-08-10T23:05:53.463377+08:000[Warning]TIMESTAMPwithimplicitDEFAULTvalueisdeprecated.Pleaseuse--explicit_defaults_for_timestampserveroption(seedocumentationformore......
  • python之unicode和encode
    Python中有两种默认的字符串:str和unicode。在Python中一定要注意区分“Unicode字符串”和“unicode对象”的区别。后面所有的“unicode字符串”指的都是python里的“unicode对象”。事实上在Python中并没有“Unicode字符串”这样的东西,只有“unicode”对象。一个传统意义上的un......
  • python 中文编码
      当py文件的编码为utf-8的时候。代码中需要添加#coding:utf-8。脚本中的中文,在运行过程不会报错。#-*-coding:utf-8-*-  当py文件设置为utf-8,而显示设置代码编码为#coding:936。则会出现ncodingproblem:cp936withBOM的错。这个时候,将py文件的编码改为ANSI即可。 ......
  • python中setup.py怎么使用(部署工具)
    `setup.py`是一个用于构建和安装Python包的脚本。它是用于打包、发布和分发你的Python项目的关键文件之一。以下是使用`setup.py`的一般步骤:1.创建`setup.py`文件:在项目的根目录下创建一个名为`setup.py`的文本文件。2.导入`setuptools`模块:在`setup.py`文件......
  • python ASCII字符的实用程序 curses.ascii 库的安装使用
    pythonASCII字符的实用程序curses.ascii库的安装使用https://www.lfd.uci.edu/~gohlke/pythonlibs/下载对自己电脑配置的WHL文件,并安装,比如我用的是curses‑2.2+utf8‑cp27‑cp27m‑win_amd64.whlpipinstallcurses‑2.2+utf8‑cp27‑cp27m‑win_amd64.whlPython代码中......
  • Effective Python 编写高质量Python代码的59个有效方法----读书笔记
    第二条遵循PETP8风格指南PEP8指南PythonEnhancementProposal#8使用space(空格)来表示缩进,而不要用tab(制表符)和与法相关的每一层缩进都用4个空格来表示每行的字符数不应超过79对于占据多行的长表达式来说,除了首行之外的其余各行都应该在通常的缩进级别至上再加4个空格......
  • 解决Mysql删除数据后,ID自增不连续问题
    修复前除了部分数据,导致后续新增的数据,ID自增不连续 解决方案执行下方SQL语句即可修复此问题,mbs_order为需要修复的表名SET@i=0;UPDATE`mbs_order`SET`id`=(@i:=@i+1);ALTERTABLE`mbs_order`AUTO_INCREMENT=0; https://blog.csdn.net/WQGuang/articl......
  • python 如何优雅的使用retrying进行重试请求
    retrying模块一、简介retrying是一个python的重试包,可以用来自动重试一些可能运行失败的程序段,retrying提供一个装饰器函数retry,被装饰的函数就会在运行失败的情况下重新执行,默认只要一直报错就会不断重试安装:pipinstallretrying二、使用方法1、无参数使用r......