python_爬虫_腾讯新闻app 单页新闻数据分析爬取

Posted 龙道人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python_爬虫_腾讯新闻app 单页新闻数据分析爬取相关的知识,希望对你有一定的参考价值。

软件:charlespycharm

平台:mac

 

网址:https://view.inews.qq.com/a/20180718A1WSEB00?uid=

 

第一步:获取api接口

1、电脑中安装charles抓包软件,与手机处于同一wifi网络下,将charles作为手机端的代理服务器。

  主机名:IP地址为电脑端的IP

  端口号:根据电脑端的charles软件设置为8888

 

2、打开手机端腾讯新闻appcharles软件抓取具体api接口(这里不详细介绍)得到接口:https://view.inews.qq.com/a/20180718A1WSEB00?uid=

 

第二步:分析

1、查看 通过Chrome浏览器检查看到代码无问题

 

 

  但打开源代码,是这样的,说明网页数据提取之后还需要进行转码

  这样肯定没有办法提取,所以主要的问题,集中在了解析网页的数据构成,以及解析。

2、分析 这次单页面主要爬取的信息就两种,新闻文本、以及图片。

  先说文字,源代码里js代码与unicode混在一起,看的眼晕头发麻,所以最主要是要将内容分离。再转码。这个页面提取时,我是分两步,第一步,先提取文字,再提取图片

  先从文章作者那里开始,通过re匹配提取整篇文件,提取后的数据进行转码后是这个样子的,图片的url还需要进行提取,所以还需要再使用一次re匹配,单独提出图片的地址,并将图片中的图片地址进行替换(替换成本地或者网上的url)

 

第三步:代码

import json,re
import requests


def getImg():
    response = requests.get(\'http://view.inews.qq.com/a/20180718A1WSEB00?uid=\')
    html = response.text
    # ------------------------------
    news_pat = re.compile(r\'\\"cnt_html":\\"(.*)\\",\\"content":\\[{"type\\":\\"cnt_article\\",\\"desc\\":\',re.S)
    news = news_pat.search(html).group(1).encode(\'utf-8\').decode(\'unicode_escape\').replace(\'\\/\',\'/\') # 源新闻


    img_list = []
    info_pat = re.compile(r\'("content":\\[{"type\\":\\"cnt_article\\".*?)</script>\',re.S) # 获取图片地址的正则
    result = info_pat.search(html).group(1)
    img_pat = re.compile(r\'{"type":"img_url".*?"desc":null}\')
    img_resu = img_pat.findall(result)
    for rese in img_resu:
        res = json.loads(rese)
        img_list.append(res[\'img_url\']) # 图片地址,存储成一个列表

    imgurl_pat = re.compile(r\'(<!--IMG_.*?-->)\') # 获取文件中图片url并替换的正则
    img_url = imgurl_pat.findall(news)
    for i in range(len(img_list)):

        if img_url[i] in news:
            news = news.replace(img_url[i], \'<img src="\'+img_list[i]+\'" alt="">\')
        else:
            print(\'不成功\')
    print(news)

if __name__ == \'__main__\':

    getImg()

最终将内容简单保存在html文件里,效果如下

这条新闻的提取难度主要就在解析上,几个正则干下来有些蒙。 上面的代码就是最终,但暂时没有下载图片,并且也没有把信息存数据库,也没有title\\time\\author等条目,仅做爬虫练习。

 

另外,求份爬虫工作~~~

 

以上是关于python_爬虫_腾讯新闻app 单页新闻数据分析爬取的主要内容,如果未能解决你的问题,请参考以下文章

Python_网络爬虫(新浪新闻抓取)

爬取腾讯网的热点新闻文章 并进行词频统计(Python爬虫+词频统计)

Python如何简单爬取腾讯新闻网前五页文字内容?

Python 教你 4 行代码开发新闻网站通用爬虫

DONEWS新闻抓取 | 每日爬虫

腾讯网易新浪新闻网站爬虫编写记录及评论格式分析