一直想学习用Python来进行数据的爬取,也一直想知道Python连接数据库的操作,今天刚好看到的这篇文章满足了这两个条件,我试着爬了下微博,并成功将数据添加到数据库中,颇为欢喜。作者写的很简单,有些过程省略掉了,因此我尝试了好几次才成功,接下来记录自己的成功操作。

一、选择需要爬取的网页

这里是用来爬取微博热搜榜的数据,网页地址为http://s.weibo.com/top/summary,打开网页并按下F12进入开发者模式,找到<td class = "td_05">...</td>里的内容,如图所示:

href后面的内容即为对应的中文编码的源码,其中很多25应该是干扰字符,后面删掉解析就可以发现是微博热搜的标题。我数了下,一共有27个,刚好第一个标题为“比伯愿为赛琳娜捐肾”九个字,一个汉字占三个字符,一共27个。

我用的是Python3.6.0,开发工具为PyCharm2017.2.3,数据库为MySql。

二、下面是完整代码

#-*-coding:utf-8-*-
import urllib, pymysql, requests, re
# 配置数据库
config = {
    'host': '127.0.0.1','port': 3306,'user': 'root','password': '******','db': 'weibo','charset': 'utf8',
}
# 链接数据库
conn = pymysql.connect(**config)
cursor = conn.cursor()
# 获取热搜源码
weiboHotFile = requests.get('http://s.weibo.com/top/summary')
weiboHotHtml = weiboHotFile.text
# 正则表达式匹配URL,找到title
hotKey = re.compile(r'td class=\\"td_05\\"><a href=\\"\\/weibo\\/(.*?)&Refer=top\\"')
hotKeyListBe = hotKey.findall(weiboHotHtml)
rank = 1
# 遍历获取的title列表
for title in hotKeyListBe:
    # 去除干扰数字
    title = title.replace('25', '')
    url = 'http://s.weibo.com/weibo/' + titletitle = urllib.parse.unquote(title)
    print(str(rank)+' '+title + ' '+' '+url+'\n')
    # 执行数据语句
    sql = 'insert into hotsearch (rank, daydate, mindate, title, url) values (%s, curdate(), curtime(), %s, %s)'
    cursor.execute(sql, (rank, title, url))
    rank += 1
    conn.commit()
cursor.close()
conn.close()

三、注意事项

这里要说明一下,数据库的连接,db是数据库的名称weibo(这个可以自己取名字),charset表示字符集为utf8,表的名称为hotsearch,里面有rank,daydate,mindate,title,url为表中的字段,作者未说明这些字段的定义,我自己定义如下:

对于varchar的类型,如果默认,则其编码模式为latin1,我刚开始不知道,运行py文件一直报错,然后网上搜索了一下,需要将latin1改为utf8,这样就对了。

最终可在数据库中查看导入成功的数据。

四、利用bat脚本运行py文件

当然,作者还写了利用bat直接运行py文件,这样更快些,我在网上查了下,也学会了:

1、找到.py对应所在的文件目录并记录下来,比如我的就是E:\***\pythonprojects\BlogSpider

2、创建一个txt文件,在文件中写入如下内容:

@echo off
cd E:\***\pythonprojects\BlogSpider

start python CrawlerBlog01.py

3、将txt文件改为bat后缀,然后双击运行即可。

五、参考链接:

https://blog.csdn.net/weixin_41407399/article/details/79775900

https://www.cnblogs.com/yingdiblog/p/7244228.html

http://s.weibo.com/top/summary

Python爬取微博热搜榜,将数据存入数据库相关推荐

  1. python爬取微博热搜榜

    python爬取微博热搜榜 最近应我大学室友得需求,做了一个简单的爬虫案例,先给大家看一下程序运行效果 接下来就是贴出代码了,在这里我会做一些简单说明,对如刚入门的同学可能会有所帮助,这里使用的是py ...

  2. python爬取微博热搜榜教程,python爬取微博热搜并存入表格

    微博热搜的爬取较为简单,我只是用了lxml和requests两个库 url= https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&am ...

  3. python爬取微博热搜显示到折线图_微博热搜榜前20信息数据爬取进行数据分析与可视化...

    一.设计方案 1.主题式网络爬虫名称:微博热搜榜前20信息数据爬取进行数据分析与可视化 2.爬取内容与数据特征分析:爬取微博热搜榜前20热搜事件.排名与热度,数据呈一定规律排序. 3.设计方案概述:思 ...

  4. c#使用正则表达式获取TR中的多个TD_使用python+BeautifulSoup爬取微博热搜榜

    本文将介绍基于Python使用BeautifulSoup爬取微博热搜榜的实现过程 1.首先导入需要使用的库 from bs4 import BeautifulSoup from urllib.requ ...

  5. 爬虫—爬取微博热搜榜

    1. 引言 利用scrapy框架爬取微博热搜榜网站前50条热搜. 爬取信息:热搜排名.热搜新闻名.热搜新闻热搜量. 数据存储:存储为.csv文件. 2.爬取流程 新建scrapy爬虫项目: 在终端输入 ...

  6. python爬取微博热搜数据并保存!

    主要用到requests和bf4两个库将获得的信息保存在d://hotsearch.txt下importrequests;importbs4mylist=[]r=requests.get(ur- 很多 ...

  7. python爬取微博热搜写入数据库_python实现爬取微博热搜存入Mysql

    python爬取微博热搜存入Mysql最终的效果 使用的库 目标分析 一:得到数据 二:链接数据库 总代码 最终的效果 废话不多少,直接上图 这里可以清楚的看到,数据库里包含了日期,内容,和网站lin ...

  8. Python爬取微博热搜数据之炫酷可视化

    可视化展示 看完记得点个赞哟 微博炫酷可视化音乐组合版来了! 项目介绍 背景 现阶段,微博.抖音.快手.哗哩哗哩.微信公众号已经成为不少年轻人必备的"生活神器".在21世纪的今天, ...

  9. 爬虫实例:正则表达式爬取微博热搜榜

    最近在学习python的爬虫知识,分享一个爬取微博热搜的实例,代码很简单. 用到了requests,re,xlwt库 直接看图: #1导入模块 import requests import re im ...

最新文章

  1. nacos 配置动态刷新_nacos配置中心修改后刷新
  2. 谷歌大脑开源「数据增强」新招数:ImageNet准确率达85%,大神Quoc Le出品
  3. linux 编译zbar
  4. container资源限制
  5. 与ai计算机专业大学排名,全球大学计算机科学与人工智能排名:卡耐基梅隆大学居首...
  6. 标准模型和IE模型的区别
  7. 通过代码控制ArcGIS Server的服务
  8. 如何利用excel中的数据源制作数据地图
  9. LM4766T/NOPB小秘密
  10. 正点原子阿波罗STM32F7-红外遥控原理及代码
  11. linux 64位 虚拟内存空间,Linux在x86-64下的虚拟内存布局
  12. 图像放大算法介绍(转载)
  13. 项目管理的经验(4年项目管理经验)
  14. nuxt.js 全局 js_使用nuxt js在vuetify js中进行高级颜色管理
  15. Invalid classes inferred from unique values of `y`. Expected: [0 1 2], got [1 2 3]
  16. java雀圣麻将游戏_《梦幻麻将馆9雀圣争霸》全攻略
  17. Docker真正的入门
  18. 【湍流】基于傅里叶变换实现大气湍流随机相位屏,增加了低频次谐波补偿附matlab代码
  19. python撩妹小技巧 —— 30行代码实现520小彩蛋
  20. Hadoop2.6.0学习笔记(九)SPOF解决方案Quorum机制

热门文章

  1. 富文本编辑器tinymce 自定义中文字号(四号,小四,五号,小五等)
  2. 【学习笔记-时间序列预测】prophet-使用.3节日与特殊事件
  3. Android 自定义SeekBar 的thumb遮挡问题解决
  4. php选择星座,PHP日期得到星座
  5. 自动化测试与自动化测试生命周期
  6. 从郭靖夫妇之死想到的(转载
  7. BoundingBox工具及其使用方法
  8. Stairway to SQL Server Security Level 3: Principals and Securables - SQLServerCentral
  9. python rfcn.py
  10. 对比学习sass和stylus的常用功能