今日头条爬虫分析-搜索

今天开始爬取今日头条的第二个入口搜索,搜索有四个tab分别为综合,视频,图集,用户。先来分析一下综合的搜索接口
https://www.toutiao.com/search_content/?offset=0&format=json&keyword=%E7%A4%BE%E5%8C%BA%E6%96%B0%E9%9B%B6%E5%94%AE&autoload=true&count=20&cur_tab=1&from=search_tab
只需要传递keyword 搜索关键字即可,无需进行其他处理,直接解析接口返回数据,该接口返回的数据有点杂数据结构不统一,有文章,用户,微头条,问答,搜索推荐,其他关键字搜索推荐,在做数据解析的时候要针对这集中数据结构分别做处理。老样子直接上代码:

    def get_search_article(self, keyword, offset=0):
        keyword = urllib.request.quote(keyword)
        req_url = "https://www.toutiao.com/search_content/?offset={}&format=json&keyword={}&autoload=true&count=20&cur_tab=1&from=search_tab".format(offset,keyword)
        headers = {
            'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
            'Connection': 'keep-alive',
            'authority': 'www.toutiao.com',
            'referer': "https://www.toutiao.com/search/?keyword={}".format(keyword),
            'method': 'GET',
            'path': "/search_content/?offset={}&format=json&keyword={}&autoload=true&count=20&cur_tab=1&from=search_tab".format(offset,keyword),
            'scheme': 'https'
        }
        self.s.headers.update(headers)
        req = self.s.get(req_url, proxies=get_proxy_ip())
        time.sleep(random.random() * 2 + 3)
        data = json.loads(req.text)
        items = data['data']
        if data['has_more'] == 1:
            self.page = self.page + 1
            offset = 20 * self.page
            self.parse_data(items)
            time.sleep(2)
            self.get_search_article(keyword, offset)
        else:
            self.parse_data(items)
            toutiaodb.save(self.search_item_list)

    def parse_data(self, items):
        for item in items:
            try:
                type = item['cell_type']
            except:
                type = 0

            if type == 37:    #微头条
                pass
            elif type == 50:
                pass
            elif type == 66:
                pass
            elif type == 26:   #内容推荐
                pass
            elif type == 20:   #搜索推荐
                pass
            elif type == 38:  #用户
                pass
            else:
                titem = toutiaoitem()
                titem.user_id = item['user_id']
                try:
                    titem.source = item['source']
                except:
                    titem.source = item['name']
                titem.title = item['title']
                titem.source_url = item['article_url']
                titem.media_url = item['media_url']
                titem.item_id = item['item_id']
                titem.abstract = item['abstract']
                titem.comments_count = item['comments_count']
                titem.behot_time = item['behot_time']
                titem.image_url = item['image_url']
                titem.image_list = item['image_list']
                titem.tag = item['tag']
                if 'play_effective_count' in item:
                    titem.article_genre = 'vedio'
                    titem.read_count = item['play_effective_count']
                else:
                    titem.article_genre = 'article'
                self.search_item_list.append(titem)

源码在:https://github.com/fywb251/toutiao-crawler

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

推荐阅读更多精彩内容