‘壹’ 如何在微信公众号编辑python代码
步骤如下:
1.关注微信公众号“Python程序员”
2.关注成功后,点击右下角的“潘多拉”->"Python终端“->"阅读原文”。
3.Python开发页面被打开,在下面的输入框内,输入python代码,点击确认即可。
‘贰’ 微信公众平台接口怎么开发python
# coding=utf-8
from django.http import HttpResponse
import hashlib, time, re
from xml.etree import ElementTree as ET
def weixin(request):
token = "your token here"
params = request.GET
args = [token, params['timestamp'], params['nonce']]
args.sort()
if hashlib.sha1("".join(args)).hexdigest() == params['signature']:
if params.has_key('echostr'):
return HttpResponse(params['echostr'])
else:
reply = """<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>"""
if request.raw_post_data:
xml = ET.fromstring(request.raw_post_data)
content = xml.find("Content").text
fromUserName = xml.find("ToUserName").text
toUserName = xml.find("FromUserName").text
postTime = str(int(time.time()))
if not content:
return HttpResponse(reply % (toUserName, fromUserName, postTime, "输入点命令吧..."))
if content == "Hello2BizUser":
return HttpResponse(reply % (toUserName, fromUserName, postTime, "查询成绩绩点请到http://chajidian.sinaapp.com/ 本微信更多功能开发中..."))
else:
return HttpResponse(reply % (toUserName, fromUserName, postTime, "暂不支持任何命令交互哦,功能开发中..."))
else:
return HttpResponse("Invalid Request")
else:
return HttpResponse("Invalid Request")
‘叁’ 我想用python自动接收微信公众平台接收到的消息,根据消息内容再做出回复。不知道怎么搞
现在都有微信公众平台的智能机器人了啊,你到千呼万唤微信公众平台导航网站看下,在微信网络里面有现有的源码下载,照着教程设置就可以了!
‘肆’ 微信公众号制作教程 遵循如下6个步骤
1、首先浏览器搜索微信公众平台,点击官网,输入用户名及密码登录。
2、然后点击管理界面的“素材管理”,点击“新建图文素材”进入编辑页面开始编辑。
3、输入标题、作者后开始写正文,插入图片,点击图片后选择本地上传,选择想要的图片,图片大小不能超过5M。
4、图片文字编辑好之后声明原创,设置封面,然后点击保存,保存之后可以先在手机上预览效果,点击预览即可。
5、确认无误后点击保存并群发,就可以将编辑好的微信公众号发出。
‘伍’ 如何入门 Python 爬虫
“入门”是良好的动机,但是可能作用缓慢。如果你手里或者脑子里有一个项目,那么实践起来你会被目标驱动,而不会像学习模块一样慢慢学习。想更好的学习python请关注微信公众号“Python基础教程”!
另外如果说知识体系里的每一个知识点是图里的点,依赖关系是边的话,那么这个图一定不是一个有向无环图。因为学习A的经验可以帮助你学习B。因此,你不需要学习怎么样“入门”,因为这样的“入门”点根本不存在!你需要学习的是怎么样做一个比较大的东西,在这个过程中,你会很快地学会需要学会的东西的。当然,你可以争论说需要先懂python,不然怎么学会python做爬虫呢?但是事实上,你完全可以在做这个爬虫的过程中学习python :D
看到前面很多答案都讲的“术”——用什么软件怎么爬,那我就讲讲“道”和“术”吧——爬虫怎么工作以及怎么在python实现。想更好的学习python请关注微信公众号“Python基础教程”!
先长话短说summarize一下:
你需要学习
基本的爬虫工作原理
基本的http抓取工具,scrapy
Bloom Filter: Bloom Filters by Example
如果需要大规模网页抓取,你需要学习分布式爬虫的概念。其实没那么玄乎,你只要学会怎样维护一个所有集群机器能够有效分享的分布式队列就好。最简单的实现是python-rq: https://github.com/nvie/rq
rq和Scrapy的结合:darkrho/scrapy-redis · GitHub
后续处理,网页析取(grangier/python-goose · GitHub),存储(Mongodb)
以下是短话长说:
说说当初写的一个集群爬下整个豆瓣的经验吧。
1)首先你要明白爬虫怎样工作。
想象你是一只蜘蛛,现在你被放到了互联“网”上。那么,你需要把所有的网页都看一遍。怎么办呢?没问题呀,你就随便从某个地方开始,比如说人民日报的首页,这个叫initial pages,用$表示吧。
在人民日报的首页,你看到那个页面引向的各种链接。于是你很开心地从爬到了“国内新闻”那个页面。太好了,这样你就已经爬完了俩页面(首页和国内新闻)!暂且不用管爬下来的页面怎么处理的,你就想象你把这个页面完完整整抄成了个html放到了你身上。
突然你发现, 在国内新闻这个页面上,有一个链接链回“首页”。作为一只聪明的蜘蛛,你肯定知道你不用爬回去的吧,因为你已经看过了啊。所以,你需要用你的脑子,存下你已经看过的页面地址。这样,每次看到一个可能需要爬的新链接,你就先查查你脑子里是不是已经去过这个页面地址。如果去过,那就别去了。
好的,理论上如果所有的页面可以从initial page达到的话,那么可以证明你一定可以爬完所有的网页。
那么在python里怎么实现呢?
很简单
import Queue
initial_page = "http://www.renminribao.com"
url_queue = Queue.Queue()
seen = set()
seen.insert(initial_page)
url_queue.put(initial_page)
while(True): #一直进行直到海枯石烂
if url_queue.size()>0:
current_url = url_queue.get() #拿出队例中第一个的url
store(current_url) #把这个url代表的网页存储好
for next_url in extract_urls(current_url): #提取把这个url里链向的url
if next_url not in seen:
seen.put(next_url)
url_queue.put(next_url)
else:
break
写得已经很伪代码了。
所有的爬虫的backbone都在这里,下面分析一下为什么爬虫事实上是个非常复杂的东西——搜索引擎公司通常有一整个团队来维护和开发。想更好的学习python请关注微信公众号“Python基础教程”!
2)效率
如果你直接加工一下上面的代码直接运行的话,你需要一整年才能爬下整个豆瓣的内容。更别说Google这样的搜索引擎需要爬下全网的内容了。
问题出在哪呢?需要爬的网页实在太多太多了,而上面的代码太慢太慢了。设想全网有N个网站,那么分析一下判重的复杂度就是N*log(N),因为所有网页要遍历一次,而每次判重用set的话需要log(N)的复杂度。OK,OK,我知道python的set实现是hash——不过这样还是太慢了,至少内存使用效率不高。
通常的判重做法是怎样呢?Bloom Filter. 简单讲它仍然是一种hash的方法,但是它的特点是,它可以使用固定的内存(不随url的数量而增长)以O(1)的效率判定url是否已经在set中。可惜天下没有白吃的午餐,它的唯一问题在于,如果这个url不在set中,BF可以100%确定这个url没有看过。但是如果这个url在set中,它会告诉你:这个url应该已经出现过,不过我有2%的不确定性。注意这里的不确定性在你分配的内存足够大的时候,可以变得很小很少。一个简单的教程:Bloom Filters by Example
注意到这个特点,url如果被看过,那么可能以小概率重复看一看(没关系,多看看不会累死)。但是如果没被看过,一定会被看一下(这个很重要,不然我们就要漏掉一些网页了!)。 [IMPORTANT: 此段有问题,请暂时略过]
好,现在已经接近处理判重最快的方法了。另外一个瓶颈——你只有一台机器。不管你的带宽有多大,只要你的机器下载网页的速度是瓶颈的话,那么你只有加快这个速度。用一台机子不够的话——用很多台吧!当然,我们假设每台机子都已经进了最大的效率——使用多线程(python的话,多进程吧)。
3)集群化抓取
爬取豆瓣的时候,我总共用了100多台机器昼夜不停地运行了一个月。想象如果只用一台机子你就得运行100个月了...想更好的学习python请关注微信公众号“Python基础教程”!
那么,假设你现在有100台机器可以用,怎么用python实现一个分布式的爬取算法呢?
我们把这100台中的99台运算能力较小的机器叫作slave,另外一台较大的机器叫作master,那么回顾上面代码中的url_queue,如果我们能把这个queue放到这台master机器上,所有的slave都可以通过网络跟master联通,每当一个slave完成下载一个网页,就向master请求一个新的网页来抓取。而每次slave新抓到一个网页,就把这个网页上所有的链接送到master的queue里去。同样,bloom filter也放到master上,但是现在master只发送确定没有被访问过的url给slave。Bloom Filter放到master的内存里,而被访问过的url放到运行在master上的Redis里,这样保证所有操作都是O(1)。(至少平摊是O(1),Redis的访问效率见:LINSERT – Redis)
考虑如何用python实现:
在各台slave上装好scrapy,那么各台机子就变成了一台有抓取能力的slave,在master上装好Redis和rq用作分布式队列。
代码于是写成
#slave.py
current_url = request_from_master()
to_send = []
for next_url in extract_urls(current_url):
to_send.append(next_url)
store(current_url);
send_to_master(to_send)
#master.py
distributed_queue = DistributedQueue()
bf = BloomFilter()
initial_pages = "www.renmingribao.com"
while(True):
if request == 'GET':
if distributed_queue.size()>0:
send(distributed_queue.get())
else:
break
elif request == 'POST':
bf.put(request.url)
好的,其实你能想到,有人已经给你写好了你需要的:darkrho/scrapy-redis · GitHub
4)展望及后处理
虽然上面用很多“简单”,但是真正要实现一个商业规模可用的爬虫并不是一件容易的事。上面的代码用来爬一个整体的网站几乎没有太大的问题。想更好的学习python请关注微信公众号“Python基础教程”!
但是如果附加上你需要这些后续处理,比如
有效地存储(数据库应该怎样安排)
有效地判重(这里指网页判重,咱可不想把人民日报和抄袭它的大民日报都爬一遍)
有效地信息抽取(比如怎么样抽取出网页上所有的地址抽取出来,“朝阳区奋进路中华道”),搜索引擎通常不需要存储所有的信息,比如图片我存来干嘛...
及时更新(预测这个网页多久会更新一次)
如你所想,这里每一个点都可以供很多研究者十数年的研究。虽然如此,
“路漫漫其修远兮,吾将上下而求索”。
所以,不要问怎么入门,直接上路就好了!
‘陆’ 请问这篇微信推文里的python代码框(可复制,可左右拉动)是怎么加的推文链接https://m
摘要 你好很高兴为您服务。
‘柒’ 微信公共账号 用python可以写么
你好!
申请微信公众帐号方法如下:
1、首先在网上搜索“微信公众平台”进入到微信公众平台界面
2、来到微信公众平台之后就是注册一个微信公众账号了,点击右上角的“立即注册”跳转到注册界面
3、来到注册界面之后当然就是要注册一个属于自己的微信公众账号咯,填入一个自己的邮箱,个人建议是QQ邮箱就行了,毕竟都是腾讯自己的产品,而且微信与QQ也是息息相关的嘛!邮箱要可以用的,因为注册的时候是需要验证的!
4、收到邮箱验证的时候,点击验证内容里面的链接,直接就可以跳到信息登记模块了。这时候就可以填上个人的信息了。证件照片得拍好一点,要看得到脸,还要能够看清楚身份证信息,这一关当初的确忙活了我好一会儿!提示一下各位,一张身份证和手机信息只可以支持两次信息登记,也就是说可以建立两个账号!
5、登记完信息之后,下一页就是微信公共账号的类型选择了,这个也没什么好选择的,只有订阅号一张,直接点击选定就可以了!
6、这个时候注册算是完成了,接下来就是1-7天的审核期。在审核期间不能够群发信息,但是可是在此期间简单的建设自己的账号,或者进一步熟悉,也可以先编辑上自己以后要发的信息等等!
‘捌’ python怎么能抓微信公众号文章的阅读数
思路一,利用rss生成工具,将搜狗的微信搜索结果生成一个rss,然后通过rss监控这个公众号的文章是否更新。(理论上应该可行,但没试过)
思路二,自己做一个桌面浏览器,IE内核。用这个浏览器登录web微信,这个微信帐号关注你想抓取的公众号,这样就可以监控到是这些公众号是否已更新,更新后链接是什么,从而达到抓取数据的目的。(使用过,效率不高,但非常稳定)
思路三,通过修改android的微信客户端来实现(这个方法是我们曾经使用过一段时间的)
思路四,想办法越过验证直接取到链接,再通过链接取到数据。
‘玖’ 微信公众平台 python安装哪里
微信公众平台 python安装哪里
SAE创建python程序,在index.wsgi输入以下代码,在微信验证输入xx.sinaapp.com,token任意,完成验证,微信中回复hello
#utf-8
import sae
import urlparse
import xml.etree.ElementTree as ET
def app(environ, start_response):
status = '200 OK'
response_headers = [('Content-type', 'text/html; charset=utf-8')]
start_response(status, response_headers)
method=environ['REQUEST_METHOD']
if method=="GET":
query=environ['QUERY_STRING']
echostr=urlparse.parse_qs(query)['echostr']
return echostr
elif method=="POST":
post=environ['wsgi.input']
root = ET.parse(post)
fromUser=root.findtext(".//FromUserName")
toUser=root.findtext(".//ToUserName")
CreateTime=root.findtext(".//CreateTime")
texttpl='''<xml>
<ToUserName>'''+fromUser+'''</ToUserName>
<FromUserName>'''+toUser+'''</FromUserName>
<CreateTime>'''+CreateTime+'''</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[hello]]></Content>
</xml>'''
return texttpl
application = sae.create_wsgi_app(app)
‘拾’ 怎样开发一个微信公众号
微信公众号是微信推出的一个公众平台,我们可以使用微信公众号进行自媒体宣传。微信公众平台为我提供了很多的接口,可供我们二次开发。接下来,我简单的给大家分享下微信公众号的一些简单的开发教程。
工具/原料
电脑
方法/步骤
1
打开电脑中的浏览器,在搜索框输入“微信公众平台”。会匹配出微信公众平台的官网,这里我们点击进入官网。
2
我们输入账号密码登录微信公众平台,没有账号的朋友可点击右上角“立即注册”进行账号注册,然后再返回登录。
3
登录成功后,将页面滑到底部。我们可以看到一个“开发”图标。
4
点击“开发”图标下方的【开发者工具】选项。
5
我们会进入开发者工具页面,我们可以看到共有六个与开发有关的工具。在前期的学习过程中,我们只需要了解前四种即可。
6
开发者文档所有开发者进行公众号开发前必须要看的文档。它可以帮助开发者完成接口以及功能的开发。
7
在线接口调试工具可以帮助我们检测在调用微信公众平台开发者API时,我们所发送的请求参数是否正确。
8
web开发者工具方便我们进行开发调试,可在一定程度上提高我们的开发效率。此工具可在开发者文档中进行下载。
9
公众平台测试账号可以让我们体验并测试微信公众平台的所有高级接口。因为我们申请的微信公众号很多高级权限都是不可用的