• 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 imeauthor等条目,仅做爬虫练习。

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

     

  • 相关阅读:
    pip list报警告DEPRECATION
    JMeter使用ServerAgent监控阿里云服务器连接不上处理方法
    mysql:查询排名
    jmeter教程(二十):性能测试执行及结果分析
    jmeter(二十一)jmeter常用插件介绍
    Jmeter第三方插件Jmeter Plugins
    jmeter 03Jmeter常用插件——梯度加压、响应时间、TPS
    Jenkins 定时任务触发时间表达式 与 cron表达式详解(两者相似但有差异)
    前端语言之JavaScript
    前端语言之CSS样式
  • 原文地址:https://www.cnblogs.com/hejianlong/p/9340834.html
Copyright © 2020-2023  润新知