0°

用Python抓取某大V的公众号文章

内容预览:
  • 原文始发于微信公众号(Python绿色通道):用Python抓取某大V的公众号文...~
  • 分析: 找到目标公众号,然后进入历史文章列表,刷新,发现变黄的选项后...~
  • 另外每个公众号的url与cookie必须匹配,才能获取到文章列表, 下面可以开...~

原文始发于微信公众号(Python绿色通道):用Python抓取某大V的公众号文章


我之前用Charles来抓取了得到App的音频资料 抓取得到App音频数据,于是又收到有读者要我抓取公众号文章,于是就有了这一篇文章. 不知道爬谁的文章好,想了想找了比较接地气的公众号大V[匿名一下,省得被认为蹭流量],于是在微信上征得他同意后,开始干活了!

抓取的效果图如下:

用Python抓取某大V的公众号文章


打开Charles抓包工具,打开微信客户端,我是直接用微信PC版上查看公众号文章的,其实这与手机上的道理是一样的。

分析:

找到目标公众号,然后进入历史文章列表,刷新,发现变黄的选项后观察变化,这里需要注意一下我们的请求数据,我们多次发起请求发现请求中,只是url的偏移量发生了变化.于是我们就找出了规律.

下面两张图我们可以看到只是偏移量发生了变化

用Python抓取某大V的公众号文章

用Python抓取某大V的公众号文章

然后再看Headers中的cookie,这里的cookie一定要注意,每个公众号对应的cookie是不一样的,

用Python抓取某大V的公众号文章

用Python抓取某大V的公众号文章

总结说明两点:爬取公众号的文章主要就是注意url与cookie的变化,其它都是相似的。另外每个公众号的url与cookie必须匹配,才能获取到文章列表, 下面可以开始写代码了!

小提示:在你正式爬取文章的时候请关掉Charles软件,因为这里占用了一个443端口,导致你抓取文章出错,切记!

完整代码:

import requests

import time
import json
import os



class mp_spider(object):

   def request_data(self):
       try:
           response = requests.get(self.base_url.format(self.offset), headers=self.headers)
           print(self.base_url.format(self.offset))
           if 200 == response.status_code:
              self.parse_data(response.text)
       except Exception as e:
           print(e)
           time.sleep(2)
           pass

   def parse_data(self, responseData):

           all_datas = json.loads(responseData)

           if 0== all_datas['ret']:

               summy_datas = all_datas['general_msg_list']
               datas = json.loads(summy_datas)['list']
               for data in datas:
                   try:
                       title = data['app_msg_ext_info']['title']
                       title_child = data['app_msg_ext_info']['digest']
                       article_url = data['app_msg_ext_info']['content_url']
                       cover = data['app_msg_ext_info']['cover']
                       print(title,title_child,article_url,cover)
                   except Exception as e:
                       print(e)
                       continue


               print('----------------------------------------')
               time.sleep(3)
               self.offset = self.offset+10
               self.request_data()
           else:
               print('抓取数据出错!')



if __name__ == '__main__':
   d = mp_spider()
   d.request_data()

注意:上面代码中的headers与url代码我已经删除了,公众号不让我添加这些东西,没有办法
完整代码见:https://github.com/pythonchannel/spider_project/tree/pythonchannel-dev/mp_spider


当然我这里只是获取公众号文章列表,也没有考虑过多的东西,下一章我进一步优化,获取公众号内容里面的详细东西,持续关注即可!

最后:
我最近参加了一个机器学习课程,机器学习很神秘,不像Python基础那样人人皆知,45元入门机器学习还是值得的!期待与你一起学习!最热门的技术方向不值得看一下吗?

用Python抓取某大V的公众号文章

推荐阅读


一起来做Python项目实战吧!


高级爬虫(一):Scrapy爬虫框架的安装

高级爬虫( 二):Scrapy爬虫框架初探

高级爬虫(三):使用Scrapy爬取拉勾网数据并写入数据库

用Python爬视频超级简单的!

使用Python开发你的第一个服务器程序

用Xpath,bs4,正则三种方式爬51job

用Python打造属于自己的搜索引擎

一起来Python项目实战,约吗?

用Python来找你喜欢的妹子(二)

用Python来找合适的妹子(一)

使用Python自动化发布文章(二)

使用Python自动化发布文章:(一)

Python爬虫:使用Python动态爬取冯大辉老师微博,再用词云分析

Python爬虫:动态爬取QQ说说并生成词云,分析朋友状况

Python爬虫:学习Selenium并使用Selenium模拟登录知乎

Python爬取大量数据时,如何防止IP被封

Python爬虫:现学现用xpath爬取豆瓣音乐


的Python之旅

用Python抓取某大V的公众号文章

长按,识别二维码,关注公众号



目前50000+人已关注加入我们

用Python抓取某大V的公众号文章 用Python抓取某大V的公众号文章 用Python抓取某大V的公众号文章 用Python抓取某大V的公众号文章 用Python抓取某大V的公众号文章 用Python抓取某大V的公众号文章 用Python抓取某大V的公众号文章 用Python抓取某大V的公众号文章

用Python抓取某大V的公众号文章 用Python抓取某大V的公众号文章 用Python抓取某大V的公众号文章 用Python抓取某大V的公众号文章 用Python抓取某大V的公众号文章 用Python抓取某大V的公众号文章 用Python抓取某大V的公众号文章 用Python抓取某大V的公众号文章


公众号回复:Flask ,爬虫,数据分析,可获得电子书


最后 :大家也可以公众号主页上回复 加群 拉你进群学习,一个纯粹的Python学习环境!


和大佬一起学习网络安全知识

以上就是:用Python抓取某大V的公众号文章 的全部内容

本站部分内容来源于互联网和用户投稿,如有侵权请联系我们删除,谢谢^^
Email:[email protected]


0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论