[Python]一起来写一个Python爬虫工具类whyspider

来源:互联网 发布:js中如何遍历json数组 编辑:程序博客网 时间:2024/06/06 01:15

很高兴在GITCAFE遇到了志同道合的人发送了合并请求^_^希望更多的人可以参与进来

写了很多简单的Python爬虫的小例子,今天突然想做个开源的工具包,在gitcafe上和大家一起分享源码。



项目源地址:

https://gitcafe.com/callmewhy/whyspider




今天写了个最简单的功能:GET和POST方法。

其他功能会在gitcafe上陆陆续续的继续完善,

下一步的计划是完成正则匹配的封装和模拟header这些常见的功能


因为最近在学安卓,所以更新的进度可能会慢一点=。=

如果有什么想法,比如觉得希望这个里面添加什么功能,欢迎评论或者在gitcafe中提交ticket~


目前刚完成了0.2版本:

[python] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. # -*- coding: utf-8 -*-  
  2. #---------------------------------------  
  3. #   程序:whyspider.py  
  4. #   版本:0.2  
  5. #   作者:why  
  6. #   日期:2014-04-18  
  7. #   语言:Python 2.7.5  
  8. #  
  9. #   版本列表:  
  10. #   0.1:添加GET和POST  
  11. #   0.2:添加模拟头的功能  
  12. #---------------------------------------  
  13.   
  14. import urllib    
  15. import urllib2  
  16. import cookielib  
  17. import re  
  18. import string  
  19.   
  20. class WhySpider:  
  21.       
  22.     # 初始化爬虫    
  23.     def __init__(self):  
  24.         self.cookie_jar = cookielib.CookieJar()  
  25.         self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookie_jar))  
  26.         self.headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0'}  
  27.   
  28.     # 发送GET请求  
  29.     def send_get(self,get_url):  
  30.         result = ""  
  31.         try:  
  32.             my_request = urllib2.Request(url = get_url, headers = self.headers)  
  33.             result = self.opener.open(my_request).read()  
  34.         except Exception,e:  
  35.             print "Exception : ",e  
  36.         return result  
  37.   
  38.     # 发送POST请求  
  39.     def send_post(self,post_url,post_data):  
  40.         result = ""  
  41.         try:  
  42.             my_request = urllib2.Request(url = post_url,data = post_data, headers = self.headers)  
  43.             result = self.opener.open(my_request).read()  
  44.         except Exception,e:  
  45.             print "Exception : ",e  
  46.         return result  
  47.   
  48.     # 模拟电脑  
  49.     def set_computer(self):  
  50.         user_agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0'  
  51.         self.headers = { 'User-Agent' : user_agent }      
  52.           
  53.     # 模拟手机  
  54.     def set_mobile(self):  
  55.         user_agent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25'  
  56.         self.headers = { 'User-Agent' : user_agent }      




调用方法很简单:

[python] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. # -*- coding: utf-8 -*-  
  2. import whyspider  
  3.   
  4. # 初始化爬虫对象  
  5. my_spider = whyspider.WhySpider()  
  6.   
  7. # 模拟GET操作  
  8. print my_spider.send_get('http://3.apitool.sinaapp.com/?why=GetString2333')    
  9.   
  10. # 模拟POST操作  
  11. print my_spider.send_post('http://3.apitool.sinaapp.com/','why=PostString2333')    
  12.   
  13. # 模拟GET操作  
  14. print my_spider.send_get('http://www.baidu.com/')    
  15.   
  16. # 切换到手机模式  
  17. my_spider.set_mobile()  
  18.   
  19. # 模拟GET操作  
  20. print my_spider.send_get('http://www.baidu.com/')    
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手机欠费销户了怎么办 想下载好多个淘宝怎么办 送快递不记得路怎么办 淘宝物流弄丢了怎么办 邮政快递碰上难缠客户怎么办 举证工伤对方不签收怎么办 快递员收件的钱怎么办 锐捷网卡是空的怎么办 mac系统excel太慢怎么办 二手车交易发票丢了怎么办 转转上买二手电脑被骗了怎么办 如果电脑买贵了怎么办 电脑配置低玩lol卡怎么办 电视打开显示无信号怎么办 电脑卡怎么办换个驱动 刚开始开淘宝店没人买怎么办 公司有人带自己电脑办公怎么办 组装电脑连不上网怎么办 显卡玩不起吃鸡怎么办 u盘内存是假的怎么办 新买的电脑应该怎么办 海尔一体机电脑开不开机怎么办 苹果笔记本系统坏了怎么办 苹果笔记本电脑电池坏了怎么办 苹果笔记本电脑屏幕坏了怎么办 平板开关键坏了怎么办 平板电脑电池坏了怎么办 平板电脑充电口坏了怎么办 平板电脑系统坏了怎么办 平板电脑充电器坏了怎么办 平板电脑触摸屏坏了怎么办 平板电脑关不了机怎么办 平板电脑触摸屏没反应怎么办 平板电脑声音太小怎么办 平板电脑频碎了怎么办? 淘宝直播展示频道排后怎么办 网店头像改不了怎么办 被骗了7500追不回来怎么办 steam中国版原来的游戏怎么办 老公买驾照被骗妻子应该怎么办 被淘密码骗了怎么办