文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>python 前置,后置正则例子

python 前置,后置正则例子

时间:2010-10-14  来源:lexus

2010-07-09

python模拟登录及表单提交

文章分类:Python编程

本文将实现从CSDN博客获取内容发布至百度博客,分别实践抓取博客内容、模拟登录、表单提交。在下文代码中间逐一阐述。

 

Python代码 
  1. # -*- coding: utf-8 -*-  
  2. import re  
  3. import urllib  
  4. import urllib2  
  5. import cookielib  
  6.   
  7. #获取CSDN博客标题和正文  
  8. url = "http://blog.csdn.net/[username]/archive/2010/07/05/5712850.aspx"  
  9. sock = urllib.urlopen(url)  
  10. html = sock.read()  
  11. sock.close()  
  12. content = re.findall('(?<=blogstory">).*(?=<p class="right artical)', html, re.S)  
  13. content = re.findall('<script.*>.*</script>(.*)', content[0], re.S)  
  14. title = re.findall('(?<=<title>)(.*)-.* - CSDN.*(?=</title>)', html, re.S)  
  15. #根据上文获取内容新建表单值  
  16. blog = {'spBlogTitle': title[0].decode('utf-8').encode('gbk'), #百度博客标题  
  17.         'spBlogText': content[0].decode('utf-8').encode('gbk'),#百度博客内容  
  18.         'ct': "1",  
  19.         'cm': "1"}  
  20. del content  
  21. del title  
  22.   
  23. #模拟登录  
  24. cj = cookielib.CookieJar()  
  25. #用户名和密码  
  26. post_data = urllib.urlencode({'username': '[username]', 'password': '[password]', 'pwd': '1'})  
  27. #登录路径  
  28. path = 'https://passport.baidu.com/?login'  
  29. opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))  
  30. opener.addheaders = [('User-agent', 'Opera/9.23')]  
  31. urllib2.install_opener(opener)  
  32. req = urllib2.Request(path, post_data)  
  33. conn = urllib2.urlopen(req)  
  34.   
  35. #获取百度发布博客的认证令牌  
  36. bd = urllib2.urlopen(urllib2.Request('http://hi.baidu.com/[username]/creat/blog')).read()  
  37. bd = re.findall('(?<=bdstoken\" value=\").*(?=ct)', bd, re.S)  
  38. blog['bdstoken'] = bd[0][:32]  
  39. #设置分类名  
  40. blog['spBlogCatName'] = 'php'  
  41. #比较表单发布博客  
  42. req2 = urllib2.Request('http://hi.baidu.com/[username]/commit', urllib.urlencode(blog))  
  43.   
  44. #查看表单提交后返回内容  
  45. print urllib2.urlopen(req2).read()  
  46.   
  47. #请将[username]/[password]替换为您的真实用户名和密码  
  48. #搞定收工……  
 
PHP操作MongoDB | Tkinter开发Symfony命令辅助工具(1)
  • 14:47
  • 浏览 (232)
  • 评论 (0)
  • 分类: python
  • 相关推荐
评论
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载