python爬搜狗微信获取指定微信公众号的文章
前言:
之前收藏了一个叫微信公众号的文章爬取,里面用到的模块不错。然而
偏偏报错= =。果断自己写了一个
正文:
第一步爬取搜狗微信搜到的公众号:
http://weixin.sogou.com/weixin?type=1&query=FreeBuf&ie=utf8&s_from=input&_sug_=n&_sug_type_=1&w=01015002&oq=&ri=11&sourceid=sugg&sut=0&sst0=1529673558816&lkt=0%2C0%2C0&p=40040108
将FreeBuf改为自己要搜的公众号

查看网页源代码:

正则匹配:
第一个正则:匹配指定的URL 正则: src=.*&timestamp=.*&ver=.*&signature=.*

蓝色标出来的是我们要的,注意多请求URL可以注意到URL,signature也就是签名是随机变化的。所以可得到正则:.*== ,取第一个,然后打开此链接爬取文章链接即可(更多细节会在代码看到)

代码:
import requests
import re
import threading
user=input('请输入要搜索的微信公众号或微信号:')
headers={'user-agent':'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)'}
url='http://weixin.sogou.com/weixin?type=1&s_from=input&query={}&ie=utf8&_sug_=y&_sug_type_=&w=01015002&oq=jike&ri=0&sourceid=sugg&stj=0%3B0%3B0%3B0&stj2=0&stj0=0&stj1=0&hp=36&hp1=&sut=4432&sst0=1529305369937&lkt=5%2C1529305367635%2C1529305369835'.format(user.rstrip()) def zhuaqu():
r = requests.get(url=url, headers=headers)
rsw = re.findall('src=.*&timestamp=.*&ver=.*&signature=.*', str(r.text))
if '验证码' in str(r.text):
print('[-]发现验证码请访问URL:{}后在重新运行此脚本'.format(r.url))
exit()
else:
cis = re.findall('.*?==', str(rsw[0]))
qd = "".join(cis)
qd2 = "{}".format(qd)
qd3 = qd2.replace(';', '&')
urls = 'https://mp.weixin.qq.com/profile?'.strip() + qd3
uewq=requests.get(url=urls,headers=headers)
if '验证码' in str(uewq.text):
print('[-]发现验证码请访问URL:{}后在重新运行此脚本'.format(uewq.url))
exit()
else:
ldw = re.findall('src = ".*?" ; ', uewq.text)
ldw2=re.findall('timestamp = ".*?" ; ',uewq.text)
ldw3=re.findall('ver = ".*?" ; ',uewq.text)
ldw4=re.findall('signature = ".*?"',uewq.text)
ldws="".join(ldw)
ldw2s="".join(ldw2)
ldw3s="".join(ldw3)
ldw4s="".join(ldw4)
ldwsjihe=ldws+ldw2s+ldw3s+ldw4s
fk=ldwsjihe.split()
fkchuli="".join(fk)
gs=fkchuli.replace('"','')
hew=gs.replace(';','&')
wanc="http://mp.weixin.qq.com/profile?"+hew
xiau=requests.get(url=wanc,headers=headers)
houxu=re.findall('{.*?}',xiau.content.decode('utf-8'))
title=re.findall('"title":".*?"',str(houxu))
purl=re.findall('"content_url":".*?"',str(houxu))
for i in range(0,len(title)):
jc='{}:{}'.format(title[i],'https://mp.weixin.qq.com'+purl[i]).replace('"','')
jc2=jc.replace('content_url','')
jc3=jc2.replace(';','&')
print(jc3) t=threading.Thread(target=zhuaqu,args=())
t.start()
测试结果:




BGM:
python爬搜狗微信获取指定微信公众号的文章的更多相关文章
- Python3 itchat微信获取好友、公众号、群聊的基础信息
Python3 itchat微信获取好友.公众号.群聊的基础信息 一.简介 安装 itchat pip install itchat 使用个人微信的过程当中主要有三种账号需要获取,分别为: 好友 公众 ...
- 50行Python代码,教你获取公众号全部文章
> 本文首发自公众号:python3xxx 爬取公众号的方式常见的有两种 - 通过搜狗搜索去获取,缺点是只能获取最新的十条推送文章 - 通过微信公众号的素材管理,获取公众号文章.缺点是需要申请自 ...
- 微信小程序和公众号和H5之间相互跳转
参考链接:https://www.imooc.com/article/22900 一.小程序和公众号 答案是:可以相互关联. 在微信公众号里可以添加小程序. 可关联已有的小程序或快速创建小程序.已关联 ...
- 微信小程序自运营器 微信小程序自动运营器(让你的微信小程序,公众号零运营成本,24小时全自动运营)
自动发单,自动评价,自动评论,自动推广 微信小程序自运营器 微信小程序自动运营器(让你的微信小程序,公众号零运营成本,24小时全自动运营) 我们会根据你的微信公众号或微信小程序定制开发带有一定AI智 ...
- 微信开发笔记:公众号获取access_token
微信开发中,access_token的获取是一种非常常见的功能,通过公众号的appid和appsecret来向微信公众平台请求一个临时通行凭证:access_token.公众平台上的绝大部分操作都会需 ...
- Chrome获取微信授权,调试公众号页面
1.目的 你可能遇到过这种情况,在微信中打开公众号是这样的. 复制链接,在chrome中打开是这样的. 博主今天要解决的就是,如果在chrome中加载需要微信授权的页面,至于加载成功后要干嘛,测试?抓 ...
- 微信第三方平台开头篇--MVC代码(第三方获取ticket和公众号授权)
微信公众号授权给开放平台 公众号授权给第三方平台的技术实现流程比较简单 这个步骤遗漏了开头获取第三方平台自己的accessToken 先说下流程 如何注册开放平台的第三方信息看截图 其他不说了,此文只 ...
- 微信跳转,网页跳转微信app跳转公众号关注页面[转载]
[微信跳转链接]之跳转公众号关注页面如何做到在微信内部在这里插入代码片浏览器打开的webview页面中,跳转到微信公众号的关注页面呢!我们可以通过访问微信提供的URL协议(weixin://)来实现这 ...
- 用iframe嵌入了一个微信公众号平台文章的URL
JS: $.ajaxPrefilter( function (options) { if (options.crossDomain && jQuery.support.cors) { ...
随机推荐
- [OSG]OSG的相关扩展
参考:osg官网 http://www.osgchina.org/index.php?view=article&id=176 http://trac.openscenegraph.org/pr ...
- gcd 与 扩gcd 总结
gcd 定理的证明: 模板: ll gcd(ll a,ll b) { ) return a; else return gcd(b,a%b); } 扩gcd证明: 模板: ll extgcd(ll a, ...
- andorid 反编译
1. 字节码文件转java文件 smali2java是一个将smali代码反编译成java代码的工具.什么是smali?smali是将Android字节码用可阅读的字符串形式表现出来的一种语言,可以称 ...
- Redis.RedisNativeClient的方法get_Db 没有实现
C#出现问题:Redis.RedisNativeClient”的方法“get_Db”没有实现 ServiceStack.Redis.RedisNativeClient”的方法“get_Db”没有实现 ...
- 学习笔记20151211——AXI4 STREAM DATA FIFO
AXI4 STREAM DATA FIFO是输入输出接口均为AXIS接口的数据缓存器,和其他fifo一样是先进先出形式.可以在跨时钟域的应用中用于数据缓冲,避免亚稳态出现.支持数据的分割和数据拼接.在 ...
- 【LeetCode 232_数据结构_队列_实现】Implement Queue using Stacks
class Queue { public: // Push element x to the back of queue. void push(int x) { while (!nums.empty( ...
- linux提权辅助工具(一):linux-exploit-suggester.sh
来自:https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh ...
- vue.js 源代码学习笔记 ----- text-parse.js
/* @flow */ import { cached } from 'shared/util' import { parseFilters } from './filter-parser' //找到 ...
- HDU 2807
http://acm.hdu.edu.cn/showproblem.php?pid=2807 把矩阵相乘放在第二重循环,第三重循环只进行比较可以水过,优化的方法不懂 主要用这题练习floyd的写法 # ...
- batchsize的选择
参考链接:http://www.zhihu.com/question/32673260 其中链接中提到,theano Python接口,支持RBM,DBN,MLP...等