python Selenium爬取内容并存储至MySQL数据库的实现代码

前面我通过一篇文章讲述了如何爬取CSDN的博客摘要等信息。通常,在使用Selenium爬虫爬取数据后,需要存储在TXT文本中,但是这是很难进行数据处理和数据分析的。这篇文章主要讲述通过Selenium爬取我的个人博客信息,然后存储在数据库MySQL中,以便对数据进行分析,比如分析哪个时间段发表的博客多、结合WordCloud分析文章的主题、文章阅读量排名等。
这是一篇基础性的文章,希望对您有所帮助,如果文章中出现错误或不足之处,还请海涵。下一篇文章会简单讲解数据分析的过程。

一. 爬取的结果
爬取的地址为:http://blog.csdn.net/Eastmount

爬取并存储至MySQL数据库的结果如下所示:

运行过程如下图所示:

二. 完整代码分析

完整代码如下所示:


    # coding=utf-8 
     
    from selenium import webdriver 
    from selenium.webdriver.common.keys import Keys 
    import selenium.webdriver.support.ui as ui   
    import re
    import time
    import os
    import codecs
    import MySQLdb
     
    #打开Firefox浏览器 设定等待加载时间 
    driver = webdriver.Firefox()
    wait = ui.WebDriverWait(driver,10) 
    
    #获取每个博主的博客页面低端总页码  
    def getPage():
     print 'getPage'
     number = 0  
     texts = driver.find_element_by_xpath("//div[@id='papelist']").text  
     print '页码', texts  
     m = re.findall(r'(\w*[0-9]+)\w*',texts) #正则表达式寻找数字  
     print '页数:' + str(m[1])  
     return int(m[1]) 
     
    #主函数 
    def main():
     #获取txt文件总行数
     count = len(open("Blog_URL.txt",'rU').readlines())
     print count
     n = 0
     urlfile = open("Blog_URL.txt",'r')
    
     #循环获取每个博主的文章摘信息 
     while n < count: #这里爬取2个人博客信息,正常情况count个博主信息
      url = urlfile.readline()
      url = url.strip("\n")
      print url
      driver.get(url)
      #获取总页码
      allPage = getPage()
      print u'页码总数为:', allPage
      time.sleep(2)
    
      #数据库操作结合
      try:
       conn=MySQLdb.connect(host='localhost',user='root',
             passwd='123456',port=3306, db='test01')
       cur=conn.cursor() #数据库游标
    
       #报错:UnicodeEncodeError: 'latin-1' codec can't encode character
       conn.set_character_set('utf8')
       cur.execute('SET NAMES utf8;')
       cur.execute('SET CHARAC
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值