python爬虫循环导入MySql数据库

1、开发环境

   操作系统:win10    Python 版本:Python 3.5.2   MySQL:5.5.53

2、用到的模块

  

  没有的话使用pip进行安装:pip install xxx    xxx需要安装的模块

3、分析链接(博客官网:https://www.cnblogs.com/)

            这里我们简单分析首页部分

               

            经分析首页的分页系统链接变量是最后一个数字,所以可将访问的链接写成如下模式,这样执行的时候加个循环就能访问需要访问的所有页面内容

4、分析页面内容

      整个页面 咱们需要的信息是博主所发博客的信息,例如:

           

      精确的的说是需要提取博客的标题,简介,发布时间以及博客链接

      找到此页面按f12来审查元素

           

      鼠标点下此箭头,然后放到页面内容上,找到咱们所查找的元素,在下面代码部分会出现相应的html:

        

     鼠标右键,选择copy element,可将这块信息复制到文本,找个文本文档保存下来如下部分代码:

        

    这个内容包含一个博客所有信息,接下来用正则提取我们需要的内容即可

5、正则表达式

       title= re.compile('<a class="titlelnk.*?>(.*?)</a>',re.S)

       title1= re.findall(title,html)

       html是整个网页所有代码文档,这两行代码就将这个网页里面所有博客标题存入title1列表里面

       其中<a class="titlelnk.*?>(.*?)</a>是匹配到所有class为titlelnk的a标签,(.*?)是咱们提取的内容

6、链接数据库

      db = pymysql.connect("127.0.0.1","root","root","crawler",charset="utf8")#打开数据链接,

      pymysql.connect()里面前四个参数我就不多说了,charset="utf8"这个参数可省只是确保编码正确,不然有些环境下无法插入数据

      cursor cursor = db.cursor()# 使用 cursor() 方法创建一个游标对象 

7、MYSQL插入语句

     

 

8、整理代码       

       

 

原理、代码都在这个,想提取所要内容,分析网站即可,当然并不是所有网站都能爬,特殊网站具有反爬措施,需要学习更多知识(访问频率控制,代理IP池等等)

 

 

      

 

 

 

 

   

posted @ 2017-11-11 17:05  琳嘉  阅读(827)  评论(0编辑  收藏  举报