建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块

rds专员

发帖: 1粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2018-8-16 15:52:14 5301 2 楼主 显示全部楼层
[MySQL] RDS For MySQL爬虫实践

云数据库(MySQL)+云数据库客户端(DAS)

背景:
本教程爬取的是新浪微博微公益平台的微拍卖拍品信息列表。爬虫爬取的信息为拍品序号、拍品名称、起拍价和当前价,并通过数据库客户端DAS写入到MySQL数据库中。


下面,让我们开始搭建小爬虫吧!
1.下载软件

1.1 下载pycharm community版
1.2下载python2.7.15

2.安装
2.1 安装python-2.7.15
>运行python-2.7.15.amd64.msi>Install for all users>选择目标路径,点击Next>点击Next>点击Finish
2.2 安装PyCharm



>根据系统操作系统版本选择, 64位系统选择64-bit launcher, 其他勾选如下图

>勾选Run Pycharm Community **,点击Finish


>阅读完政策说明后点击Accept

>点击create new project


>设置Project的存储路径>点击create

>点击close

2.3在pycharm中安装第三方库

>点击file>点击settings>点击project untitled1(其中untitled1为自定义的项目名)>点击 project interpreter>点击右侧的“+”号

11.jpg
>在搜索框中输入pymysql,选中PyMySQL,点击Install Package


出现以下提示说明安装成功,关闭该页面

3.购买云数据库
在华为云官网开发者支持计划领取免费套餐,或者购买MySQL数据库
4.申请数据库客户端DAS
>目前DAS在公测阶段,您可以通过以下链接申请免费试用https://www.huaweicloud.com/product/das.html
5.登录华为云数据库管理页面,选择您要存储数据的实例,点击登录,跳转到数据库客户端DAS登录页面
18.jpg>DAS页面中输入管理员账户名和密码,账户名可在实例信息页面查到,一般默认为root,密码为您在购买数据库实例时输入的管理员密码。

>登陆DAS后右键点击实例名>点击SQL窗口,将以下SQL语句输入编辑框中,点击执行SQL语句。

CREATE DATABASE sina;
CREATE TABLE `sina`.`sina_paimai` (
  `id` int(50) AUTO_INCREMENT NOT NULL,
  `project_name` varchar(50) NULL,
  `project_start_price` varchar(50) NULL,
  `project_now_price` varchar(50) NULL,
  PRIMARY KEY(`id`)
) DEFAULT CHARACTER SET = utf8,
COLLATE = utf8_general_ci,
ENGINE = InnoDB;


19.JPG
完成上述步骤后我们已经在sina中新建了一张名为sina_paimai的表,表**有四个字段,分别是id,project_name,project_start_price,project_now_price
6.完成以上步骤后,只差最后一步,爬虫就搭建完成啦。
>打开pycharm>右键点击project untitled1>点击new>点击python file


给你要创建的python程序起一个名字,点击OK.
然后把以下爬虫代码复制进你刚刚创建的python文件中,并将代码中的host、port、user、 password改成你的数据库实例公网IP、端口号、数据库账户名和密码保存就可以啦~
爬虫代码:

#coding=utf-8
import pymysql
import urllib2 as url
import re
#获取新浪微博微公益平台微拍卖第一页的源代码
html='
https://gongyi.weibo.com/list/auction?on_state=0&theme_id=0&title=&order=hot&page=1'
content=url.urlopen(html)
text=content.read()
#解析网页源代码,用正则表达式获取源代码中的拍品名、起拍价和当前价
project_name=re.findall(r'<a href="/auction/detail.goods_id=......">(.*?)
', text) project_start_price=re.findall(r'起拍价<em class="num">(.*?)</em>元,当前价', text) project_now_price=re.findall(r'当前价<em class="num">(.*?)</em>元', text) #连接到云数据库 connection=pymysql.connect(     host='xxx.xxx.xxx.xxx',     port=3306,     user='sina',     password='xxxxxxx',     db='sina',     charset='utf8',     cursorclass=pymysql.cursors.DictCursor) #用sql语句把拍品名、起拍价和当前价拆入到已经建好的sina_paimai表中 try:     for i in range(0,len(project_name),1):         with connection.cursor() as cursor:             sql='insert into sina_paimai(project_name,project_start_price,project_now_price)VALUES(%s,%s,%s)'             cursor.execute(sql,(project_name ,project_start_price ,project_now_price ));         connection.commit() finally:      connection.close();


最后点击run!

7.在数据库客户端DAS中查看爬取的数据

>登录DAS, 在SQL窗口中输入

SELECT * FROM `sina_paimai`

,点击执行SQL就可以看到爬取的结果啦。

展示结果:如拍卖序号:1,拍品名称:春节晚会小虎队演出服-霹雳虎,起拍价:100,当前价 57680

id:拍卖序号

project_name 拍卖名称

project_start_price 起拍价 
Project_now_price 当前价

17.jpg

举报
分享

分享文章到朋友圈

分享文章到微博

高晓云

发帖: 33粉丝: 21

级别 : 管理员

Rank: 9Rank: 9Rank: 9

发消息 + 关注

发表于2018-8-16 17:07:28 沙发 显示全部楼层

写得很不错哈!!!

点赞 回复 举报

遥不可及

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2018-8-16 17:36:05 板凳 显示全部楼层

这个可以呀,必须照着做一遍

点赞 回复 举报

游客

您需要登录后才可以回帖 登录 | 立即注册