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浏览器检查看到代码无问题

 

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

 

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

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

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

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

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

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

 

python_爬虫_腾讯新闻app  单页新闻数据分析爬取第三步:代码

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]+" >)
        else:
            print(不成功)
    print(news)

if __name__ == __main__:

    getImg()

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

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

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

 

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

 

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

上一篇:android源码编译到刷机过程2


下一篇:iOS学习——Quartz2D学习(1)