Giter VIP home page Giter VIP logo

wechatsogou's Introduction

基于搜狗微信搜索的微信公众号爬虫接口

Build Status PyPI version PyPI py27,py35,py36 PyPI

我的另外一个作品: https://github.com/chyroc/lark ,基于代码生成的 Lark/飞书 Go SDK,欢迎 star 。

ws_api.get_gzh_info('南航青年志愿者')

 __        __        _           _   ____
 \ \      / /__  ___| |__   __ _| |_/ ___|  ___   __ _  ___  _   _
  \ \ /\ / / _ \/ __| '_ \ / _` | __\___ \ / _ \ / _` |/ _ \| | | |
   \ V  V /  __/ (__| | | | (_| | |_ ___) | (_) | (_| | (_) | |_| |
    \_/\_/ \___|\___|_| |_|\__,_|\__|____/ \___/ \__, |\___/ \__,_|
                                                 |___/

项目简介

基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫

如果有问题,请提issue

CHANGELOG

交流分享

  • QQ群(只需加一个)

    • 一群 132955136(已满)
    • 二群 819084985
  • 微信群

赞助作者

甲鱼说,咖啡是灵魂的饮料,买点咖啡

谢谢这些人的☕️

支付宝扫码大家一起领红包:

或者直接转账:

问题集锦

Q:没有得到原始文章url / 提示链接已经过期?
A:微信屏蔽此接口,请在临时链接有效期内保存文章内容。

Q:获取文章只能10篇?
A:是的,仅显示最近10条群发。

Q:使用的是python 2 还是 3?
A:都支持,若出错,请报BUG。

安装

pip install wechatsogou --upgrade

使用

初始化 API

import wechatsogou

# 可配置参数

# 直连
ws_api = wechatsogou.WechatSogouAPI()

# 验证码输入错误的重试次数,默认为1
ws_api = wechatsogou.WechatSogouAPI(captcha_break_time=3)

# 所有requests库的参数都能在这用
# 如 配置代理,代理列表中至少需包含1个 HTTPS 协议的代理, 并确保代理可用
ws_api = wechatsogou.WechatSogouAPI(proxies={
    "http": "127.0.0.1:8888",
    "https": "127.0.0.1:8888",
})

# 如 设置超时
ws_api = wechatsogou.WechatSogouAPI(timeout=0.1)

获取特定公众号信息 - get_gzh_info

ws_api.get_gzh_info('南航青年志愿者')

  • 使用
In [5]: import wechatsogou
  ...:
  ...: ws_api =wechatsogou.WechatSogouAPI()
  ...: ws_api.get_gzh_info('南航青年志愿者')
  ...:
Out[5]:
{
  'authentication': '南京航空航天大学',
  'headimage': 'http://img01.sogoucdn.com/app/a/100520090/oIWsFt1tmWoG6vO6BcsS7St61bRE',
  'introduction': '南航大志愿活动的领跑者,为你提供校内外的志愿资源和精彩消息.',
  'post_perm': 26,
  'view_perm': 1000,
  'profile_url': 'http://mp.weixin.qq.com/profile?src=3&timestamp=1501140102&ver=1&signature=OpcTZp20TUdKHjSqWh7m73RWBIzwYwINpib2ZktBkLG8NyHamTvK2jtzl7mf-VdpE246zXAq18GNm*S*bq4klw==',
  'qrcode': 'http://mp.weixin.qq.com/rr?src=3&timestamp=1501140102&ver=1&signature=-DnFampQflbiOadckRJaTaDRzGSNfisIfECELSo-lN-GeEOH8-XTtM*ASdavl0xuavw-bmAEQXOa1T39*EIsjzxz30LjyBNkjmgbT6bGnZM=',
  'wechat_id': 'nanhangqinggong',
  'wechat_name': '南航青年志愿者'
}
  • 返回数据结构
{
    'profile_url': '',  # 最近10条群发页链接
    'headimage': '',  # 头像
    'wechat_name': '',  # 名称
    'wechat_id': '',  # 微信id
    'post_perm': int,  # 最近一月群发数
    'view_perm': int,  # 最近一月阅读量
    'qrcode': '',  # 二维码
    'introduction': '',  # 简介
    'authentication': ''  # 认证
}

搜索公众号

ws_api.search_gzh('南京航空航天大学')

  • 使用
In [6]: import wechatsogou
   ...:
   ...: ws_api =wechatsogou.WechatSogouAPI()
   ...: ws_api.search_gzh('南京航空航天大学')
   ...:
Out[6]:
[
  {
    'authentication': '南京航空航天大学',
    'headimage': 'http://img01.sogoucdn.com/app/a/100520090/oIWsFt1MvjqspMDVvZjpmxyo36sU',
    'introduction': '南京航空航天大学官方微信',
    'post_perm': 0,
    'view_perm': 0,
    'profile_url': 'http://mp.weixin.qq.com/profile?src=3&timestamp=1501141990&ver=1&signature=S-7U131D3eQERC8yJGVAg2edySXn*qGVi5uE8QyQU034di*2mS6vGJVnQBRB0It9t9M-Qn7ynvjRKZNQrjBMEg==',
    'qrcode': 'http://mp.weixin.qq.com/rr?src=3&timestamp=1501141990&ver=1&signature=Tlp-r0AaBRxtx3TuuyjdxmjiR4aEJY-hjh0kmtV6byVu3QIQYiMlJttJgGu0hwtZMZCCntdfaP5jD4JXipTwoGecAze8ycEF5KYZqtLSsNE=',
    'wechat_id': 'NUAA_1952',
    'wechat_name': '南京航空航天大学'
  },
  {
    'authentication': '南京航空航天大学',
    'headimage': 'http://img01.sogoucdn.com/app/a/100520090/oIWsFtwVmjdK_57vIKeMceGXF5BQ',
    'introduction': '南京航空航天大学团委官方微信平台',
    'post_perm': 0,
    'view_perm': 0,
    'profile_url': 'http://mp.weixin.qq.com/profile?src=3&timestamp=1501141990&ver=1&signature=aXFQrSDOiZJHedlL7vtAkvFMckxBmubE9VGrVczTwS601bOIT5Nrr8Pcgs6bQ-oEd6jdQ0aK5WCQjNwMAhJnyQ==',
    'qrcode': 'http://mp.weixin.qq.com/rr?src=3&timestamp=1501141990&ver=1&signature=7Cpbd9CVQsXJkExRcU5VM6NuyoxDQQfVfF7*CGI-PTR0y6stHPtdSDqzAzvPMWz67Xz9IMF2TDfu4Cndj5bKxlsFh6wGhiLH0b9ZKqgCW5k=',
    'wechat_id': 'nuaa_tw',
    'wechat_name': '南京航空航天大学团委'
  },
 ...
]
  • 数据结构

list of dict, dict:

{
    'profile_url': '',  # 最近10条群发页链接
    'headimage': '',  # 头像
    'wechat_name': '',  # 名称
    'wechat_id': '',  # 微信id
    'post_perm': int,  # 最近一月群发数
    'view_perm': int,  # 最近一月阅读量
    'qrcode': '',  # 二维码
    'introduction': '',  # 介绍
    'authentication': ''  # 认证
}

搜索微信文章

ws_api.search_article('南京航空航天大学')

  • 使用
In [7]: import wechatsogou
   ...:
   ...: ws_api =wechatsogou.WechatSogouAPI()
   ...: ws_api.search_article('南京航空航天大学')
   ...:
Out[7]:
[
  {
    'article': {
      'abstract': '【院校省份】江苏【报名时间】4月5日截止【考试时间】6月10日-11日南京航空航天大学2017年自主招生简章南京航空航天大学2017...',
      'imgs': ['http://img01.sogoucdn.com/net/a/04/link?appid=100520033&url=http://mmbiz.qpic.cn/mmbiz_png/P07yicBRJfC71QB3lREx4J4x34QOibGaia5BkiaaiaiaibicWkTBULou9R08K6FaxlUA1RFBFWCmpO1Lepk7ZcXK45vguQ/0?wx_fmt=png'],
      'time': 1490270644,
      'title': '南京航空航天大学2017年自主招生简章',
      'url': 'http://mp.weixin.qq.com/s?src=3&timestamp=1501142580&ver=1&signature=hRMlQOLQpu4BNhBACavusZdmk**D65qHyz5LWDq1lPjVcm7*iiBS0l7Pq40h0fiCX*bZ8vSMLzAMDNzELYFKIQ7mND0-7cQi-N0BtfTBql*CQdsHun-GtaYEqRva6Ukwce3gZh46SXJzo90kyZ3dwVYl6*589bGDIzG6JTGfpxI='
    },
    'gzh': {
      'headimage': 'http://wx.qlogo.cn/mmhead/Q3auHgzwzM5kiawibor6ABhnibMYnOADvqdcrl5XWiaFfM5mGYZ8cUica6A/0',
      'isv': 0,
      'profile_url': 'http://mp.weixin.qq.com/profile?src=3&timestamp=1501142580&ver=1&signature=dVkDdcFr1suL1WHdCOJj7pwZhG9W*APi-j5kRtS09ccv-WID-zNs0ecDiiz1wwE7qbNSk5HBL*ffpyVXcF0fFQ==',
      'wechat_name': '自主招生在线'
    }
  },
...
]
  • 数据结构

list of dict, dict:

{
    'article': {
        'title': '',  # 文章标题
        'url': '',  # 文章链接
        'imgs': '',  # 文章图片list
        'abstract': '',  # 文章摘要
        'time': int  # 文章推送时间 10位时间戳
    },
    'gzh': {
        'profile_url': '',  # 公众号最近10条群发页链接
        'headimage': '',  # 头像
        'wechat_name': '',  # 名称
        'isv': int,  # 是否加v 1 or 0
    }
}

解析最近文章页 - get_gzh_article_by_history

ws_api.search_article('南京航空航天大学')

  • 使用
In [1]: import wechatsogou
   ...:
   ...: ws_api =wechatsogou.WechatSogouAPI()
   ...: ws_api.get_gzh_article_by_history('南航青年志愿者')
   ...:
Out[1]:
{
  'article': [
    {
      'abstract': '我们所做的,并不能立马去改变什么——\n但千里之行,绿勤行永不止步。\n我们不会就此止步,之后我们又将再出发。\n 民勤,再见。\n绿勤行,不再见。',
      'author': '',
      'content_url': 'http://mp.weixin.qq.com/s?timestamp=1501143158&src=3&ver=1&signature=B-*tqUrFyO7OqpFeJZwTA7JJtsHpz6BgC8ugyfgpOnyWLtPb85R5Zmu0JuZRbZKG72x4bQjMCcsfA5mC3GSSOPbYd-9tzvTgmroGRmc4Tzk8090KCiEu6EjA0YMHeytWJWpxr51M2FUYQhTWJ01pTmNnXLVAG6Ex6AG52uvvmQA=',
      'copyright_stat': 100,
      'cover': 'http://mmbiz.qpic.cn/mmbiz_jpg/icFYWMxnmxHDYgXNjAle7szYLgQmicbaQlb1eVFuwp2vxEu5eNVwYacaHah2N5W8dKAm725vxv5aM6DFlM59Wftg/0?wx_fmt=jpeg',
      'datetime': 1501072594,
      'fileid': 502326199,
      'main': 1,
      'send_id': 1000000306,
      'source_url': '',
      'title': '绿勤行——不说再见',
      'type': '49'
    },
    {
      'abstract': '当时不杂,过往不恋,志愿不老,我们不散!',
      'author': '',
      'content_url': 'http://mp.weixin.qq.com/s?timestamp=1501143158&src=3&ver=1&signature=B-*tqUrFyO7OqpFeJZwTA7JJtsHpz6BgC8ugyfgpOnyWLtPb85R5Zmu0JuZRbZKG72x4bQjMCcsfA5mC3GSSOGUrM*jg*EP1jU-Dyf2CVqmPnOgBiET2wlitek4FcRbXorAswWHm*1rqODcN52NtfKD-OcRTazQS*t5SnJtu3ZA=',
      'copyright_stat': 100,
      'cover': 'http://mmbiz.qpic.cn/mmbiz_jpg/icFYWMxnmxHCoY44nPUXvkSgpZI1LaEsZfkZvtGaiaNW2icjibCp6qs93xLlr9kXMJEP3z1pmQ6TbRZNicHibGzRwh1w/0?wx_fmt=jpeg',
      'datetime': 1500979158,
      'fileid': 502326196,
      'main': 1,
      'send_id': 1000000305,
      'source_url': '',
      'title': '有始有终  |  2016-2017年度环境保护服务部工作总结',
      'type': '49'
    },
  ...
  ],
  'gzh': {
    'authentication': '南京航空航天大学',
    'headimage': 'http://wx.qlogo.cn/mmhead/Q3auHgzwzM4xV5PgPjK5XoPaaQoxnWJAFicibMvPAnsoybawMBFxua1g/0',
    'introduction': '南航大志愿活动的领跑者,为你提供校内外的志愿资源和精彩消息。',
    'wechat_id': 'nanhangqinggong',
    'wechat_name': '南航青年志愿者'
  }
}
  • 数据结构
{
    'gzh': {
        'wechat_name': '',  # 名称
        'wechat_id': '',  # 微信id
        'introduction': '',  # 简介
        'authentication': '',  # 认证
        'headimage': ''  # 头像
    },
    'article': [
        {
            'send_id': int,  # 群发id,注意不唯一,因为同一次群发多个消息,而群发id一致
            'datetime': int,  # 群发datatime 10位时间戳
            'type': '',  # 消息类型,均是49(在手机端历史消息页有其他类型,网页端最近10条消息页只有49),表示图文
            'main': int,  # 是否是一次群发的第一次消息 1 or 0
            'title': '',  # 文章标题
            'abstract': '',  # 摘要
            'fileid': int,  #
            'content_url': '',  # 文章链接
            'source_url': '',  # 阅读原文的链接
            'cover': '',  # 封面图
            'author': '',  # 作者
            'copyright_stat': int,  # 文章类型,例如:原创啊
        },
        ...
    ]
}

解析 首页热门 页 - get_gzh_article_by_hot

ws_api.get_gzh_article_by_hot(WechatSogouConst.hot_index.food)

  • 使用
In [1]: from pprint import pprint
   ...: from wechatsogou import WechatSogouAPI, WechatSogouConst
   ...:
   ...: ws_api = WechatSogouAPI()
   ...: gzh_articles = ws_api.get_gzh_article_by_hot(WechatSogouConst.hot_index.food)
   ...: for i in gzh_articles:
   ...:     pprint(i)
   ...:
{
    'article': {
        'abstract': '闷热的夏天有什么事情能比吃上凉凉的甜品更惬意的呢?快一起动手做起来吧,简单方便,放冰箱冻一冻,那感觉~橙汁蒸木瓜木瓜1个(300-400克左右),橙子4个,枫糖浆20克(如果家里没有,也可以用蜂蜜、炼乳等代替),椰果适量。做法1.用削皮',
        'main_img': 'http://img01.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fw9UGwFPia7QTUIadPibgW8OFkqf1ibR40xicKfzofRS0sDpaFp3CG0jkPyQKeXl44TXswztW1SJnic7tmCibjB8rIIGw%2F0%3Fwx_fmt%3Djpeg',
        'open_id': 'oIWsFty9hHVI9F10amtzx5TOWIq8',
        'time': 1501325220,
        'title': '夏日甜品制作方法,不收藏后悔哦!',
        'url': 'http://mp.weixin.qq.com/s?src=3&timestamp=1501328525&ver=1&signature=n9*oX0k4YbNFhNMsOjIekYrsha44lfBSCbG9jicAbGYrWNN8*48NzpcaHdxwUnC12syY5-ZxwcBfiJlMzdbAwWKlo26EW14w2Ax*gjLVlOX-AGXB4443obZ-GK0pw*AFZAGZD8sI4AFBZSZpyeaxN4sS7cpynxdIuw6S2h*--LI='
    },
    'gzh': {
        'headimage': 'http://img03.sogoucdn.com/app/a/100520090/oIWsFty9hHVI9F10amtzx5TOWIq8',
        'wechat_name': '甜品烘焙制作坊'
    }
}
...
...
  • 数据结构
{
    'gzh': {
        'headimage': str,  # 公众号头像
        'wechat_name': str,  # 公众号名称
    },
    'article': {
        'url': str,  # 文章临时链接
        'title': str,  # 文章标题
        'abstract': str,  # 文章摘要
        'time': int,  # 推送时间,10位时间戳
        'open_id': str,  # open id
        'main_img': str  # 封面图片
    }
}

获取关键字联想词

  • 使用
In [1]: import wechatsogou
   ...:
   ...: ws_api =wechatsogou.WechatSogouAPI()
   ...: ws_api.get_sugg('高考')
   ...:
Out[1]:
['高考e通',
 '高考专业培训',
 '高考地理俱乐部',
 '高考志愿填报咨讯',
 '高考报考资讯',
 '高考教育',
 '高考早知道',
 '高考服务志愿者',
 '高考机构',
 '高考福音']
  • 数据结构

关键词列表

['a', 'b', ...]

TODO

  • 相似文章的公众号获取
  • 主页热门公众号获取
  • 文章详情页信息
  • 所有类型的解析
  • 验证码识别
  • 接入爬虫框架
  • 兼容py2

wechatsogou's People

Contributors

calmzeala avatar chyroc avatar czlhs avatar dependabot[bot] avatar edison-hsu avatar harunme avatar jasonqiao36 avatar miderwong avatar mx472756841 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wechatsogou's Issues

如何使用代理

测试了一下,如果一直连续爬的话,那么就过一段时间需要输入验证码
输入完成后,还是不能正确的爬取数据
看了下代理的设置,简单的把 __get 函数的 proxy 设置为 True 后,只是输出了代理服务器的 ip 并不能继续爬取

引入模块的时候报错

您好,我是新学Python的,我之前引入了requests、lxml、pil这三个模块,再执行test.py的时候,报这个错:no module named werkzeug.contrib.cache,百度、bing 没搜到,这是什么问题呢?

跳出来验证码之后输入,报错

跳出来验证码之后,输入正确的验证码之后,会存在报错,这种情况出现在今天下午;输入验证码后报错的代码如下:

ocr  解封成功正在为您跳转来源地址...
Traceback (most recent call last):

  File "<ipython-input-1-9d314b4b1274>", line 1, in <module>
    runfile('C:/Users/lieto/.spyder-py3/Wechat.py', wdir='C:/Users/lieto/.spyder-py3')

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 866, in runfile
    execfile(filename, namespace)

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/lieto/.spyder-py3/Wechat.py", line 13, in <module>
    data = wechats.get_gzh_message_and_info(wechatid="ji-lian-mei")

  File "C:\ProgramData\Anaconda3\lib\site-packages\wechatsogou\api.py", line 248, in get_gzh_message_and_info
    gzh_info = self.get_gzh_info(wechatid)

  File "C:\ProgramData\Anaconda3\lib\site-packages\wechatsogou\api.py", line 97, in get_gzh_info
    info = self.search_gzh_info(wechatid, 1)

  File "C:\ProgramData\Anaconda3\lib\site-packages\wechatsogou\api.py", line 41, in search_gzh_info
    text = self._search_gzh_text(name, page)

  File "C:\ProgramData\Anaconda3\lib\site-packages\wechatsogou\basic.py", line 312, in _search_gzh_text
    self._vcode_url.replace('http://', '')))

  File "C:\ProgramData\Anaconda3\lib\site-packages\wechatsogou\basic.py", line 157, in _get
    raise WechatSogouVcodeException('weixin.sogou.com verification code')

WechatSogouVcodeException: weixin.sogou.com verification code

验证码输入后失败

跑的test.py

img_code = input("please input code: ") 输入后显示:
File "", line 1, in
NameError: name 'fgko' is not defined

列表页验证码有办法绕过吗?

现在从公众号搜索页跳转到公众号最近文章的列表页,每次都会进入验证码页面,我用了 time.sleep()来增加访问延迟,结果还是没有效果。不知道搜狗这个验证机制是怎么样实现的,有没有办法绕开呢?

def get_gzh_message() 中:
            time.sleep(5)
            gzh_info = self.get_gzh_info(wechatid)
            time.sleep(5)
            print "search gzh!"
            url = gzh_info['url']
            time.sleep(10)
            text = self._get_gzh_article_by_url_text(url)
            print "enter list page"
            time.sleep(1)

deal_article_comment(text=text)并不能获得用户的评论内容

执行article_info = wechats.deal_article(url)时,出现如下错误:
Traceback (most recent call last):
File "F:/wechat/WechatSogou-master/tt.py", line 11, in
article_info = wechats.deal_article(url)
File "F:/wechat/WechatSogou-master\wechatsogou\api.py", line 362, in deal_article
comment = self.deal_article_comment(url=url)
File "F:/wechat/WechatSogou-master\wechatsogou\api.py", line 316, in deal_article_comment
sg_data = '{' + sg_data[0].replace(u'\r\n', '').replace(' ', '') + '}'
IndexError: list index out of range
出错的原因是并未获得评论相关内容,需要什么设置或改变才能获得,求帮助,谢谢!

演示代码wechats.get_gzh_article_by_url_dict(wechat_info['url'])提示list index out of range

这行代码articles = wechats.get_gzh_article_by_url_dict(wechat_info['url'])
运行提示:

Traceback (most recent call last):
  File "/Users/Hao/anaconda/lib/python3.5/site-packages/IPython/core/interactiveshell.py", line 2885, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-3-2be23d6bc9aa>", line 1, in <module>
    articles = wechats.get_gzh_article_by_url_dict(wechat_info['url'])
  File "/Users/Hao/anaconda/lib/python3.5/site-packages/wechatsogou/basic.py", line 273, in get_gzh_article_by_url_dict
    msglist = re.findall("var msgList = '(.+?)';", text, re.S)[0]
IndexError: list index out of range

看起来是msglist = re.findall("var msgList = '(.+?)';", text, re.S)[0]出了问题。

search_gzh_info无法取得内容

你好,首先十分感谢你这个project。我的Python版本是2.7.9,在跑test.py的时候出现了api.py 198行gzh_info['url'] has no attribute 'getitem'的问题。我稍微看了一下,是因为search_gzh_info这个function没有获得任何内容,返回了一个空的list。里面所有的page.xpath(xxx)所返回的内容也都是空的,但是第40行的text我print出来确实取得了完整的html代码。不知道是xpath的那个module的版本还是什么导致的?麻烦告知一下解决方法,万分感谢!

请问,我运行test.py时为何没报错却没得到任何结果?

@chyroc 感谢Chyroc的分享,弱问一下,为何我运行test.py时没有报错,却没有得到任何结果?然后我再写什么命令都没有反应了,这可能是什么问题啊,麻烦了

Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.

========= RESTART: C:\chuzi\work\Python27\WechatSogou-master\test.py =========

print 1

image

log怎么使用?

还有就是, 有没有意向进行商业合作,我找不到你的联系方式, 如果有请联系:UVE6Mjg1MDQxMTAwOQ==

对时间的支持

def _search_article_text(self, name, page=1, date=None):
        """通过搜狗搜索微信文章关键字返回的文本
        Args:
            name: 搜索文章关键字
            page: 搜索的页数

        Returns:
            text: 返回的文本
        """
        date_prm = {
            None: "",
            "day": "&tsn=1&sourceid=inttime_day",
            "week": "&tsn=2&sourceid=inttime_week",
            "month": "&tsn=3&sourceid=inttime_month",
            "year": "&tsn=3&sourceid=inttime_year",
        }
        request_url = 'http://weixin.sogou.com/weixin?query=' + quote(
            name) + '&_sug_type_=&_sug_=n&type=2&page=' + str(
            page) + '&ie=utf8' + date_prm[date]

无法正确解析wechatid

WechatSogouApi.search_gzh_info无法获取wechatid

possible workaround:
wechatid = get_elem_text(li.xpath('div/div[2]/p[2]/label')[0])

结果模版更新了

api.py WechatSogouApi.search_gzh_info()方法解析新模版出错了
cache_re = re.split(u'微信号:|功能介绍:|认证:|最近文章:', cache_list[0])
今天的微信id列表页里,这行文字是这样的:
u'XXX微信号:XXXXXX月发文XX篇    平均阅读XXXXX'

请问logging.config.fileConfig('logging.conf')出错如何解决

Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 540, in runfile
execfile(filename, namespace)
File "/home/crd/桌面/python/untitled1.py", line 24, in
logging.config.fileConfig('logging.conf')
File "/usr/lib/python2.7/logging/config.py", line 77, in fileConfig
formatters = _create_formatters(cp)
File "/usr/lib/python2.7/logging/config.py", line 113, in _create_formatters
flist = cp.get("formatters", "keys")
File "/usr/lib/python2.7/ConfigParser.py", line 607, in get
raise NoSectionError(section)
ConfigParser.NoSectionError: No section: 'formatters'
日志出错?

原始文章url

腾讯修改接口,获取原始文章url的msg_link为空,导致无法获取原始文章url

请问最近搜狗返回的Html内容是改了吗?最近抓内容出错。

Traceback (most recent call last):
File "wechat_crawling.py", line 98, in
messages = wechat_api.get_gzh_message(wechatid=wid)
File "./sogouapi/wechatsogou\api.py", line 203, in get_gzh_message
gzh_info = self.get_gzh_info(wechatid)
File "./sogouapi/wechatsogou\api.py", line 111, in get_gzh_info
info = self.search_gzh_info(wechatid, 1)
File "./sogouapi/wechatsogou\api.py", line 67, in search_gzh_info
wechatid.append(cache_re[1])
IndexError: list index out of range
===============分割线==========================
如上是错误内容。我看了一下,api.py的search_gzh_info开始试图获取内容,其中
cache_re = re.split(u'微信号:|功能介绍:|认证:|最近文章:', cache_list[0])
这边拿到的split内容最后的结果(包括一开始的cache变量读到的内容)只有如下这样:
“安信电力设备新能源微信号:anxin_new_energy月发文1篇    平均阅读88”

不知道是什么原因导致的。。。求看看!谢谢

输入验证码后报错

Traceback (most recent call last):
File "E:\Python27\lib\logging\handlers.py", line 76, in emit
if self.shouldRollover(record):
File "E:\Python27\lib\logging\handlers.py", line 156, in shouldRollover
msg = "%s\n" % self.format(record)
File "E:\Python27\lib\logging_init_.py", line 734, in format
return fmt.format(record)
File "E:\Python27\lib\logging_init_.py", line 465, in format
record.message = record.getMessage()
File "E:\Python27\lib\logging_init_.py", line 329, in getMessage
msg = msg % self.args
TypeError: not all arguments converted during string formatting
Logged from file basic.py, line 160

[已经失效]关于获得文章永久URL的思路

测试了一下,使用手机客户端(我是IOS)&& PC客户端(我是win),在应用内打开已经失效的临时URL,可以正常打开文章。并且,点击复制文章的链接,可以得到一个永久URL。

这个URL会形如这个样子: http://mp.weixin.qq.com/s/ezLlm-FOVSfGOZghdFJxZw

估计是微信的服务器 && 应用内浏览器之间,封装一种机制。这个机制会在后端处理“非微信应用内请求“的时候,清空msg_link(issue #17

希望用框架再次实现!

1.希望博主可以用scrapy实现,希望可以和博主一起完成。
2.主要用了博主抓取首页文章链接的API(抓取文章url的xpath好像已经改了,博主更新下吧!)
3.其实博主的_get方法可以用多线程实现,发现下载6000千个文章的速度真的是太慢了。。。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.