用python写的一个wordpress的采集程序

 更新时间:2016年02月27日 22:03:28   作者:运维人生  

在学习python的过程中,经过不断的尝试及努力,终于完成了第一个像样的python程序,虽然还有很多需要优化的地方,但是目前基本上实现了我所要求的功能,需要的朋友可以参考下

在学习python的过程中,经过不断的尝试及努力,终于完成了第一个像样的python程序,虽然还有很多需要优化的地方,但是目前基本上实现了我所要求的功能,先贴一下程序代码:

具体代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

 import os,urllib2,re,time,MySQLdb,sys

 reTitle          = re.compile('<font[^>]*>(.*?)</font><font[^>]*')

 reNeiron         = re.compile('[1-9|A-Z|a-z].*')

 retiqu          = re.compile('^(?!MARGINWIDTH|BR).*.[^>|}]$')

 rezhong          = re.compile('^[^[].*')

 shijian=1190944000

 Str1="\n---------------- BLOG OF YAO"

 bianhao=2859

 for i in range(1,1500):

     Str2=""

     ltime=time.localtime(shijian)

     timeStr=time.strftime("%Y%m%d",ltime)

     print url

     a=urllib2.urlopen(url).read()

     Title=reTitle.findall(a)

     print "=========================================================================================================="

     for titles in map(None,Title):

         titles=MySQLdb.escape_string(titles)

         print titles

     Neiron=re.findall(reNeiron,a)

     for i in map(None,Neiron):

         x=re.findall(retiqu,i)

         for str in x:

             str=MySQLdb.escape_string(str)

             Str2 += str+"\n"

     shijian += 86400

     bianhao += 1

     try:

         conn=MySQLdb.connect("XXXX.XXXX.XXXX.XXXX","user","passwd","dbname",charset="utf8", init_command="set names utf8")

     except MySQLdb.OperationalError,message:

         print "like error"

     cursor=conn.cursor()

     sql="INSERT INTO wp_posts (post_author,post_date,post_date_gmt,post_content,post_content_filtered,post_title,post_excerpt,post_status,post_type,comment_status,ping_status,post_password,post_name,to_ping,pinged,post_modified,post_modified_gmt,post_parent,menu_order,guid) VALUES ('1','2011-06-01 22:12:25','2011-05-09 04:12:25','','','Auto Draft','','inherit','revision','open','open','','100-revision','','','2011-06-01 22:12:25','2011-05-09 04:12:25','%s','0','')" %bianhao

     sql2="UPDATE wp_posts SET post_author = 1, post_date = '2011-06-01 22:12:25', post_date_gmt = '2011-06-01 22:12:25', post_content ='%s', post_content_filtered = '', post_title = '%s', post_excerpt = '', post_status = 'publish', post_type = 'post', comment_status = 'open', ping_status = 'open', post_password = '', post_name = '%s', to_ping = '', pinged = '', post_modified = '2011-06-01 22:12:25', post_modified_gmt = '2011-05-09 04:12:30', post_parent = 0, menu_order = 0, guid = 'http://www.moncleronlineshops.com/?p=%s' WHERE ID = %s" %(Str2,titles,titles,bianhao,bianhao)

     cursor.execute(sql)

     cursor.execute(sql2)

     cursor.close()

     conn.close()

     sys.exit()

下面,我们来给代码加些注释,让读者能看的更明白一些,如下:

Python客栈送红包、纸质书

具体代码如下

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

 import os,urllib2,re,time,MySQLdb,sys

reTitle          = re.compile('<font[^>]*>(.*?)</font> <font[^>]*')

reNeiron         = re.compile('[1-9|A-Z|a-z].*')

retiqu          = re.compile('^(?!MARGINWIDTH|BR).*.[^>|}]$')

shijian=1190944000 

Str1="\n---------------- BLOG OF YAO"

bianhao=2859  

for i in range(1,1500):

    Str2=""

    ltime=time.localtime(shijian) 

     timeStr=time.strftime("%Y%m%d",ltime)

    a=urllib2.urlopen(url).read()

     Title=reTitle.findall(a)

    print "=========================================================================================================="

     for titles in map(None,Title):

所以我们要写个for循环把前后的[]去掉,并转义成能直接插入mysql库的格式。

        titles=MySQLdb.escape_string(titles)

     Neiron=re.findall(reNeiron,a)

    for i in map(None,Neiron):

        x=re.findall(retiqu,i)

        for str in x:

             str=MySQLdb.escape_string(str)

             Str2 += str+"\n"

    shijian += 86400

    bianhao += 1  

    try:

     except MySQLdb.OperationalError,message:

         print "like error"

     cursor=conn.cursor()

    sql="INSERT INTO wp_posts (post_author,post_date,post_date_gmt,post_content,post_content_filtered,post_title,post_excerpt,post_status,post_type,comment_status,ping_status,post_password,post_name,to_ping,pinged,post_modified,post_modified_gmt,post_parent,menu_order,guid) VALUES ('1','2011-06-01 22:12:25','2011-05-09 04:12:25','','','Auto Draft','','inherit','revision','open','open','','100-revision','','','2011-06-01 22:12:25','2011-05-09 04:12:25','%s','0','')" %bianhao

     sql2="UPDATE wp_posts SET post_author = 1, post_date = '2011-06-01 22:12:25', post_date_gmt = '2011-06-01 22:12:25', post_content ='%s', post_content_filtered = '', post_title = '%s', post_excerpt = '', post_status = 'publish', post_type = 'post', comment_status = 'open', ping_status = 'open', post_password = '', post_name = '%s', to_ping = '', pinged = '', post_modified = '2011-06-01 22:12:25', post_modified_gmt = '2011-05-09 04:12:30', post_parent = 0, menu_order = 0, guid = 'http://www.moncleronlineshops.com/?p=%s' WHERE ID = %s" %(Str2,titles,titles,bianhao,bianhao)

     cursor.execute(sql)

     cursor.execute(sql2)

    cursor.close()

     conn.close() 

    sys.exit()

上面是程序的代码,采集的是:www.jokeswarehouse.com 的一个笑话网站。通过 python 的 re 模块,也就是正则匹配模块,运行相应的正则表达式,进行过滤出我们所需要的标题和文章内容,再运用 python 的mysqldb 模块,进行连接数据库,利用相应的插入语句,进行插入数据库。

微信公众号搜索 “ 脚本之家 ” ,选择关注

程序猿的那些事、送书等活动等着你

相关文章

  • python导入库的具体方法

    python导入库的具体方法

    在本篇内容里小编给大家分享的是关于python如何导入库的步骤和方法,有需要的朋友们可以学习下。

    2020-06-06

  • python之生产者消费者模型实现详解

    python之生产者消费者模型实现详解

    这篇文章主要介绍了python之生产者消费者模型实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    2019-07-07

  • celery实现动态设置定时任务

    celery实现动态设置定时任务

    这篇文章主要为大家详细介绍了celery实现动态设置定时任务,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    2021-03-03

  • Django异步任务线程池实现原理

    Django异步任务线程池实现原理

    这篇文章主要介绍了Django异步任务线程池实现原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    2019-12-12

  • python虚拟环境virualenv的安装与使用

    python虚拟环境virualenv的安装与使用

    virtualenv 是一个创建隔绝的Python环境的工具。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。下面这篇文章就给大家介绍了python虚拟环境virualenv的安装与使用,有需要的朋友们可以参考借鉴,下面来一起看看吧。

    2016-12-12

相关推荐: Adobe Illustrator 脚本学习: JS脚本文档中插入日期和文件名

javascript Date 类竟然没有内置格式化函数,查了文档找不到,到网上找了几个 yyyy-MM-DD 格式化日期,还是这个算不错。Adobe Illustrator 脚本,使用 activeDocument.name 对象就能获得文件名; activ…

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享