python爬虫入门基础代码实例

admin 2022-10-15 280

import pymysql
 
# 使用python连接mysql数据库,并对数据库进行添加数据的方法
# 创建连接,数据库主机地址 数据库用户名称 密码 数据库名 数据库端口 数据库字符集编码
conn = pymysql.connect(host='127.0.0.1',
                       user='root',
                       password='123456',
                       database='empdb',
                       port=3307,
                       charset='utf8')
print("连接成功")
 
# 创建游标
cursor = conn.cursor()
 
# 添加一条数据数据
def insertdata1():
    insert_emp_sql = "insert into empdb.employee (ename,age,dept_id,wage_id) values ('王十八',45,1,3)"
    # 执行语句
    cursor.execute(insert_emp_sql)
    # 提交数据
    conn.commit()
 
# 批量添加数据
def insertdata2():
    insert_emp_sql = "insert into empdb.employee (ename,age,dept_id,wage_id) values ('{}',{},1,3);"
 
    # 插入10条数据0-9
    for i in range(10):
        uname = '高少少'+str(i)
        age=30+i
 
        ins_sql= insert_emp_sql.format(uname,age)
        cursor.execute(ins_sql)
        conn.commit()
 
# 删除数据
def deletedata(id):
    delete_emp_sql = "delete from empdb.employee where eid={}"
    del_sql = delete_emp_sql.format(id)
    cursor.execute(del_sql)
    conn.commit()
 
 
# 更改数据
def updatadata():
    updata_emp_sql = "update empdb.employee set age=66 where eid = 26"
    cursor.execute(updata_emp_sql)
    conn.commit()
 
# 关闭游标跟连接
def closeconn():
    # 关闭游标
    cursor.close()
    # 关闭连接
    conn.close()
 
try:
    # insertdata1()
    # insertdata2()
    deletedata(1)
    updatadata()
except:
    conn.rollback()
 
closeconn()


欢迎联系本站长QQ:3216572
最新回复 (2)
  • admin 2022-10-15
    2
    #!/usr/bin/python
    # coding:utf-8
    # 实现一个简单的爬虫,爬取百度贴吧图片
    import requests
    import re
    # 根据url获取网页html内容
    def getHtmlContent(url):
        page = requests.get(url)
        return page.text
    # 从html中解析出所有jpg图片的url
    # 百度贴吧html中jpg图片的url格式为:<img ... src="XXX.jpg" width=...>
    def getJPGs(html):
      # 解析jpg图片url的正则
      jpgReg = re.compile(r'<img.+?data-original="(.+?\.jpg)"') # 注:这里最后加一个'width'是为了提高匹配精确度
      # 解析出jpg的url列表
      jpgs = re.findall(jpgReg,html)
      
      return jpgs# 为数组
    # 用图片url下载图片并保存成制定文件名
    def downloadJPG(imgUrl,fileName):
      # 可自动关闭请求和响应的模块
        from contextlib import closing
        with closing(requests.get(imgUrl,stream = True)) as resp:
            with open(fileName,'wb') as f:
                for chunk in resp.iter_content(128):
                   f.write(chunk)
      
    # 批量下载图片,默认保存到当前目录下
    def batchDownloadJPGs(imgUrls,path = './img/'):
      # 用于给图片命名
      count = 1
      for url in imgUrls:
        downloadJPG(url,''.join([path,'{0}.jpg'.format(count)]))
        print ('下载完成第{0}张图片'.format(count))
        count = count + 1
    # 封装:从百度贴吧网页下载图片
    def download(url):
      html = getHtmlContent(url)
      jpgs = getJPGs(html)
     # print(jpgs)
      batchDownloadJPGs(jpgs)
      
    def main():
      url = 'https://free.com/piaoliangganjiejie/112.html'
      download(url)
      
    if __name__ == '__main__':
      main()


  • admin 2022-10-15
    3
    import pymysql
    # 链接服务端
    conn_obj = pymysql.connect(
        host='127.0.0.1',  # MySQL服务端的IP地址
        port=3306,  # MySQL默认PORT地址(端口号)
        user='root',  # 用户名
        password='qwer9999',  # 密码,也可以简写为passwd
        database='pymysql_db',  # 库名称,也可以简写为db
        charset='utf8'  # 字符编码
    )
    # 产生获取命令的游标对象
    cursor = conn_obj.cursor()  # 括号内不写参数,数据是元组套元组
    # cursor = conn_obj.cursor(
    #     cursor=pymysql.cursors.DictCursor
    # )  # 括号内写参数,数据会处理成字典形式
    # sql1 = 'show tables;'
    sql1 = 'select * from t1;'  # SQL语句会被高亮显示
    # 执行SQL语句
    affect_rows = cursor.execute(sql1)
    print(affect_rows)  # 执行SQL语句之后受影响的行数
    # 获取数据
    # res = cursor.fetchall()  # 获取所有数据
    res = cursor.fetchone()  # 获取一条数据
    # res = cursor.fetchmany(2)  # 获取指定个数数据
    # cursor.scroll(1, 'relative')  # 相对于当前位置往后移动一个单位
    # res = cursor.fetchall()  # 获取所有数据
    # cursor.scroll(1, 'absolute')  # 相对于起始位置往后移动一个单位
    res1 = cursor.fetchall()  # 获取所有数据
    print(res, res1)


返回