python3 scrapy爬取微信公众号及历史信息V1.0

妹子图.png

环境:

python3 scrapy

目的

写这篇文章主要是做一下纪念,毕竟是搞了快两天的东西了,今天加大了量,使用scrapy爬取100多个微信公众号,然后出现IP被封的情况下,当然了,这种情况并不是没有办法解决,只需要在scrapy中进行设置一下就可以了,主要是在本地进行调试,然后IP代理池那一块暂时找不到好的质量高的IP,只是爬取了各大网站的免费IP,并没有很好的解决效果,这个版本只要在IP中稍微进行下设置调整,可以不愧为一个很好的爬取微信公众号历史消息的一个小案例。

爬取步骤

  1. 找到公众号


    image.png
  2. 获取历史消息


    image.png
  3. 获取详情页内容


    image.png

还有第4步:

将详情页内容解析出来,图片,文字都单独拎出来,现在暂时不做处理,因为这一块有些麻烦的。逻辑整体就是这样。

python代码

这里是spider的代码,其他的就不用贴出来了:

spiders/WeChatSogou.py

# -*- coding: utf-8 -*-
# @Time    : 2018/2/25 14:24
# @Author  : 蛇崽
# @Email   : 643435675@QQ.com
# @File    : WeChatSogou.py(微信公众号爬虫:不包含浏览量跟评论)
import scrapy
import re
import time
import json
import requests
from fake_useragent import UserAgent
from scrapy import Request
from scrapy_redis.spiders import RedisSpider
from News_scrapy.items import NewsItem
from News_scrapy.constants.WeChatSource import WXSource

class WeChatSogouSpider(scrapy.Spider):
    name = "WeChat"
    allowed_domains = ["weixin.sogou.com",'mp.weixin.qq.com']
    start_urls = ['http://weixin.sogou.com/']

    def parse(self, response):

        wx_source = WXSource.get_dict()
        for v_wx_source in wx_source:
            print('wx_source ===',v_wx_source)
            try:
                type = v_wx_source.split('-')[0]
                channel = v_wx_source.split('-')[1]
                print("正在抓取:", type, channel)
                v_main_url = 'http://weixin.sogou.com/weixin?type=1&s_from=input&query={}'.format(channel)
                print('v_main_url',v_main_url)
                yield scrapy.Request(url=str(v_main_url),callback=self.parse_main_link,meta={'type':type})
            except:
                continue
                print('wx_source error ===', v_wx_source)


    def parse_main_link(self,response):
        print('parse_main_link ====  ',response.body)
        target_url = response.xpath("//*['txt-box']/p[@class='tit']/a/@href").extract_first()
        print('===== start =====')
        print('target_url',target_url)
        print('==== end =====')
        if target_url:
            yield scrapy.Request(url=target_url,callback=self.parse_list_gzhao)


    def parse_list_gzhao(self,response):
        print('resonse:  ',response)
        req_text = response.text

        reg_content_url = r'"content_url":"(.*?)",'
        m_infos = re.findall(reg_content_url, req_text, re.S)
        print(len(m_infos))
        for v_info in m_infos:
            v_info = 'https://mp.weixin.qq.com' + re.sub('&', '&', v_info)
            print(v_info)
            yield scrapy.Request(url=v_info,callback=self.parse_detail)

    def parse_detail(self, response):
        print('parse_detail ===== ',response.text)


注意事项:
1 allowed_domains = ["weixin.sogou.com",'mp.weixin.qq.com'] 

2  reg_content_url = r'"content_url":"(.*?)",'
 这里通过正则方式获取每个详情页链接的url,因为原文用的js动态加载的,

下面这是注意事项2的截图:

image.png

很蛋疼吧,哈哈,哎。

放上自己小小的学习交流群吧
Python自学交流群(702689263)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容