属于cookie里面用到的关键字有_python爬取微信公众号文章(携带cookie)

滑稽研究所 c3224d6c3592b829252e6811d17e934a.gif

python爬取微信公众号文章

哈喽,大家好呀,我是滑稽君。本期我们想要爬取微信公众号的文章内容。首先你想要有自己的微信公众号来登录平台。在个人编辑发布文章的界面,我们能使用上方的超链接功能来搜索文章,可以按关键字,也可以按照公众号,我们选择后者。

b5e2aadd2a886b38b1c51e9b24853c8e.gif

视频讲解:

3b4dd11468a447799ba685783edddf97.png

我们打开开发者模式。选择netword点击下一页就会刷新出数据,点击蓝色部分‘appmsg’。右边显示的url就是我们的json数据页面。

b3e74371477a257ae25993343399bf5a.png

json界面:

d25c784de5a91a8c957e92fdbda6473f.png

我们进行解析:

9760944bc23ecfe820f17a3af59ffb92.png

529989ee77d37e0059e8bf1969982b25.png

可以看到我们想要的内容在‘app_msg_list’对应的值中,它本身是key。而我们想要的内容在title和link中。ok目标明确,上代码。

主代码:

import scrapyimport jsonimport timeclass GzhSpider(scrapy.Spider):    name = 'gzh'    start_urls = ['https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin=0&count=5&fakeid=&type=9&query=&token=824638704&lang=zh_CN&f=json&ajax=1']    def parse(self, response):        gzh_json = json.loads(            str(response.body, encoding='utf-8'),            encoding='utf-8'        )        txt1 = gzh_json['app_msg_list']        for data in txt1:            title = data['title']            url = data['link']            print(title)            print('url->' + url)        time.sleep(3)        yield {            "title": title,            "url": url        }        i = 0        for h in range(14):            i = i + 5            x = str(i)            next = "https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin=" + x  + "&count=5&fakeid=&type=9&query=&token=824638704&lang=zh_CN&f=json&ajax=1"            yield scrapy.Request(next)

在考虑到可能发生请求频繁的情况,我们导入time库,每爬取一页,程序暂停3秒。翻页部分的处理也与以往不同。需要注意格式的转换以及空地址的情况。我们总共有15页内容,所以我们只需要操作14次。如果你还是担心出现空网站报错的情况,你可以加一个if判断网址是否为空,然后再传给request。

完成以上工作就万事大吉了吗?no ,尝试打印response.body,你会发现并不能返回我们要的json界面,为什么?不要忘了搜索文章的超链接功能是在我们登录平台后才可以使用的。也就是说你不登陆是无法使用超链接功能的。那我们就需要进行模拟登录。这时我们就需要用到cookie了。怎么样找到它呢?还是headers部分往下看。红色部分就是。

b21b4592365021b446f292d864d319ea.png

我们复制这一长串数据,打开settings文件进行配置。如图,先取消圈内代码的注释。在第二个headers部分加入我们的cookie数据。记得是键值对的形式。把刚才复制的数据粘贴到值的部分即可。

bb7bb0c40c65303c0cbbaf44011d1b8a.png

完成cookie的配置之后我们才能爬取到想要的内容,因为这时网页就认为我们是登录状态了。所以完成cookie的配置才是我们第一步要做的事情,很重要,所以我们把它放在最后讲。爬取到内容之后,我选择输出成txt。下面是运行结果。

c3e3ad823a921cd5abfeb649b6620498.png

需要用到登录之后的功能,都需要携带cookie去请求页面。否则页面会拒绝我们的请求。

5bc048510330698f494f5fc5fa392864.gif ❂ END

 视频讲解部分是我们全部流程的串联。如对文章内容还有疑问的可以选择观看视频。或私聊我呦

430eeb13470d8a0f1ff04e576ece25ca.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值