Python网路数据采集之储存数据|第04天

优采云 发布时间: 2020-08-19 09:28

  Python网路数据采集之储存数据|第04天

  User:你好我是森林Date:2018-03-31Mark:《Python网路数据采集》原文:))

  网络采集系列文章

  Python网路数据采集之创建爬虫

  Python网路数据采集之HTML解析

  Python网路数据采集之开始采集

  Python网路数据采集之使用API

  存储数据

  网络数据的采集,最本质的东西还是数据,我们爬取的数据是须要储存的。

  媒体文件

  存储媒体文件有两种主要的形式:只获取文件 URL 链接,或者直接把源文件下载出来。

  可以通过媒体文件所在的URL 链接直接引用它。这样做的优点如下:

  于此同时都会有一些缺点:

  下载文件的方式也很简单,在Python 3.x 版本中,urllib.request.urlretrieve可以依照文件的 URL 下载文件;

  例如我们从 下载 logo图片,然后在程序运行的文件夹里保存为 logo.jpg 文件。

  from urllib.request import urlretrieve

from urllib.request import urlopen

from bs4 import BeautifulSoup

html = urlopen('http://www.pythonscraping.com')

bs = BeautifulSoup(html, 'html.parser')

imageLocation = bs.find('a', {'id': 'logo'}).find('img')['src']

urlretrieve (imageLocation, 'logo.jpg')

  下载文件须要注意exe的文件,木马文件等。不要在硬碟储存敏感信息,不要用管理员权限运行他。

  把数据储存到CSV

  CSV(Comma-Separated Values,逗号分隔值)是储存表格数据的常用文件格式。关于CSV格式的文件不做过多的介绍,自行去了解一下。

  Python的csv库可以创建或则更改CSV文件。

  import csv

csvFile = open("./demo.csv","w+")

try:

writer = csv.writer(csvFile)

writer.writerow(('number', 'number plus 2', 'number times 2'))

for i in rang(10):

writer.writerow((i,i+2,I*2))

finally:

csvFile.close()

  如果文件不存在都会创建demo.csv。

  MySQL

  MySQL是目前最受欢迎的开源关系型数据库管理系统。因为它受众广泛,免费,开箱即用,所以它也是网路数据采集项目中常用的数据库。

  我采用的是Mac的平台,可以直接下载安装安装也可以通过包管理器(例如homebrew)安装。

  官网下载地址:

  其他的平台可以去官网查看安装详情,作为一个改变世界的程序猿,安装软件应当不是问题。

  基本命令

  创建数据库:

  CREATE DATABASE demo;

  使用数据库:

  USE demo;

  创建表:

  CREATE TABLE user(

id BIGINT(7) NOT NULL AUTO_INCREMENT,

name VARCHAR(10),

sex tinyint(1),

creatime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

PRIMARY KEY(id)

);

  和数据库不同,MySQL 数据表必须起码有一列,否则不能创建。为了在 MySQL 里定义数组(数据列),你必须在 CREATE TABLE 句子前面,把数组的定义放进一个带括弧的、内部由冒号分隔的列表。

  插入数据:

  INSERT INTO user (name, sex) VALUES ("name", "1");

  查询数据:

  SELECT * FROM user

  模糊查询:

  SELECT id FROM user LIKE "%chensenlin.cn%"

  删除数据:

  DELELT FROM user WHERE id = 1

  更新数据:

  UPDATE user SET name = 'chensenlin' WHERE id = 66

  特别指出:更新或则删掉一定要加条件!否则就说灾难,哈哈哈

  与Python整合

  Python没有外置的MySQL 支持工具。不过,有很多开源的库可以拿来与 MySQL做交互,Python 2.x和Python 3.x版本都支持。最有名的一个库就是PyMySQL()。

  安装:

  pip install PyMySQL

  基本使用:

  import pymysql

conn = pymysql.connect(host='127.0.0.1', unix_socket='/tmp/mysql.sock',user='root', passwd=root, db='mysql')

cur.execute("USE demo")

cur.execute("SELECT * FROM user WHERE id = 1") print(cur.fetchone())

cur.close()

conn.close()

  Email

  Python发送一封短信:

  import smtplib

from email.mime.text import MIMEText

msg = MIMEText("邮件正文内容")

msg['Subject'] = "这是一个测试有奖主题"

msg['From'] = "fore@gmail.com"

msg['To'] = "hellosenlin@sina.cn"

s = smtplib.SMTP('localhost')

s.send_message(msg)

s.quit()

  与网页通过HTTP协议传输一样,邮件是通过SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)传输的。而且,和网路服务器的客户端(浏览器)处理这些通过 HTTP 协议传输的网页一样。

  可以将其封装成函数作为发送短信定时使用等。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线