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

很高兴在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/')    

猜你喜欢

转载自blog.csdn.net/Mikefei007/article/details/52301533