[Python]一起来写一个Python爬虫工具类whyspider
来源:互联网 发布:快乐家族关系知乎 编辑:程序博客网 时间:2024/06/05 20:21
很高兴在GITCAFE遇到了志同道合的人发送了合并请求^_^希望更多的人可以参与进来
写了很多简单的Python爬虫的小例子,今天突然想做个开源的工具包,在gitcafe上和大家一起分享源码。
项目源地址:
https://gitcafe.com/callmewhy/whyspider
今天写了个最简单的功能:GET和POST方法。
其他功能会在gitcafe上陆陆续续的继续完善,
下一步的计划是完成正则匹配的封装和模拟header这些常见的功能
因为最近在学安卓,所以更新的进度可能会慢一点=。=
如果有什么想法,比如觉得希望这个里面添加什么功能,欢迎评论或者在gitcafe中提交ticket~
目前刚完成了0.2版本:
# -*- coding: utf-8 -*-#---------------------------------------# 程序:whyspider.py# 版本:0.2# 作者:why# 日期:2014-04-18# 语言:Python 2.7.5## 版本列表:# 0.1:添加GET和POST# 0.2:添加模拟头的功能#---------------------------------------import urllib import urllib2import cookielibimport reimport stringclass WhySpider: # 初始化爬虫 def __init__(self): self.cookie_jar = cookielib.CookieJar() self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookie_jar)) self.headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0'} # 发送GET请求 def send_get(self,get_url): result = "" try: my_request = urllib2.Request(url = get_url, headers = self.headers) result = self.opener.open(my_request).read() except Exception,e: print "Exception : ",e return result # 发送POST请求 def send_post(self,post_url,post_data): result = "" try: my_request = urllib2.Request(url = post_url,data = post_data, headers = self.headers) result = self.opener.open(my_request).read() except Exception,e: print "Exception : ",e return result # 模拟电脑 def set_computer(self): user_agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0' self.headers = { 'User-Agent' : user_agent } # 模拟手机 def set_mobile(self): 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' self.headers = { 'User-Agent' : user_agent }
调用方法很简单:
# -*- coding: utf-8 -*-import whyspider# 初始化爬虫对象my_spider = whyspider.WhySpider()# 模拟GET操作print my_spider.send_get('http://3.apitool.sinaapp.com/?why=GetString2333') # 模拟POST操作print my_spider.send_post('http://3.apitool.sinaapp.com/','why=PostString2333') # 模拟GET操作print my_spider.send_get('http://www.baidu.com/') # 切换到手机模式my_spider.set_mobile()# 模拟GET操作print my_spider.send_get('http://www.baidu.com/')
8 1
- [Python]一起来写一个Python爬虫工具类whyspider
- [Python]一起来写一个Python爬虫工具类whyspider
- python写爬虫1-写一个简单爬虫
- Python写的一个爬虫程序
- python写一个爬虫(1)
- python写一个爬虫(2)
- python写一个爬虫(3)
- python写一个爬虫(4)改进
- 如何使用Python写一个爬虫软件
- 用python写一个美女图片爬虫
- 用python写一个爬虫程序
- 用Python写一个简单的爬虫
- 一起来写2048(160行python代码)
- python 写爬虫
- 用python写爬虫
- python写爬虫
- python 写爬虫
- python的爬虫工具
- 开发一款手机格斗网游需要注意些什么
- 通过对象容器来传引用
- 差分约束系统(持续更新中)
- ZOJ 3753 Simple Equation
- Protocol Buffer技术详解(C++实例)
- [Python]一起来写一个Python爬虫工具类whyspider
- 操作系统引导过程及硬盘分区结构论述
- LINUX多线程 封装
- UIImage 和 CALayer 的遮罩
- Python socket编程
- dhcp
- Jsp/struts/tapestry/hibernate等中文乱码问题解决
- 最重要的两部分是内容和外链
- DozerBeanMapper对象之间相同属性名赋值