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

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "Helvetica Neue"; color: #000000 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "Helvetica Neue"; color: #000000; min-height: 12.0px }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "PingFang SC"; color: #000000 }
span.s1 { font: 11.0px "PingFang SC" }
span.s2 { }
span.s3 { font: 11.0px "Helvetica Neue" }
span.Apple-tab-span { white-space: pre }

软件:charles、pycharm

平台:mac

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

第一步:获取api接口

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

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

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

2、打开手机端腾讯新闻app,charles软件抓取具体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]+‘" >‘)
        else:
            print(‘不成功‘)
    print(news)

if __name__ == ‘__main__‘:

    getImg()

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

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

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

原文地址:https://www.cnblogs.com/hejianlong/p/9340834.html

时间: 2024-08-02 08:46:03

python_爬虫_腾讯新闻app 单页新闻数据分析爬取的相关文章

python爬爬爬之单网页html页面爬取

python爬爬爬之单网页html页面爬取 作者:vpoet 日期:大约在夏季 注:随意copy 不用告诉我 #coding:utf-8 import urllib2 Response=urllib2.urlopen("http://www.baidu.com"); Html=Response.read(); print Html; 运行结果: 再看看百度的源码: 是一样,没骗你吧

Python网络爬虫技巧小总结,静态、动态网页轻松爬取数据

很多人学用python,用得最多的还是各类爬虫脚本:有写过抓代理本机验证的脚本,有写过自动收邮件的脚本,还有写过简单的验证码识别的脚本,那么我们今天就来总结下python爬虫抓站的一些实用技巧. 静态网页 对于静态网页的爬虫不用多说大家也都知道,因为爬取静态网页非常的简单,只要用requests直接把html爬取下来然后用正则表达式匹配就可以了. 动态网页 相对于静态网页的简单,但是动态网页的就会相对而而言会复杂一下,而且现在互联网的发展速度,动态网页是最多的,静态网页是比较少的,不过他有张良计

[Python] 网络爬虫实战(一):网站链接的初级爬取

闲来无事,想要学习一下Python,十月初的时候搭好了ubuntu的环境,用的是Ubuntu 16.04 32位+sublime Text3,轻量级的编程环境,感觉用起来还是比较舒服的.也陆陆续续地学习了一下python的语法和相关的知识点,并没有感觉到python有什么特别的地方,数据结构中的列表,元组和字典,还没有感到其特点在哪里比较明显,只是一个数据结构而已.恰好学院老师让搜集就业相关信息,所以就想尝试去先写一个爬虫,爬一下相关网站的相关链接.先提起兴趣,再去学习枯燥的知识点. 一开始以为

Python爬虫入门教程 4-100 美空网未登录图片爬取

简介 上一篇写的时间有点长了,接下来继续把美空网的爬虫写完,这套教程中编写的爬虫在实际的工作中可能并不能给你增加多少有价值的技术点,因为它只是一套入门的教程,老鸟你自动绕过就可以了,或者带带我也行. 爬虫分析 首先,我们已经爬取到了N多的用户个人主页,我通过链接拼接获取到了 http://www.moko.cc/post/da39db43246047c79dcaef44c201492d/list.html 在这个页面中,咱们要找几个核心的关键点,发现平面拍摄点击进入的是图片列表页面. 接下来开始

Python爬虫入门教程 13-100 斗图啦表情包多线程爬取

写在前面 今天在CSDN博客,发现好多人写爬虫都在爬取一个叫做斗图啦的网站,里面很多表情包,然后瞅了瞅,各种实现方式都有,今天我给你实现一个多线程版本的.关键技术点 aiohttp ,你可以看一下我前面的文章,然后在学习一下. 网站就不分析了,无非就是找到规律,拼接URL,匹配关键点,然后爬取. 撸代码 首先快速的导入我们需要的模块,和其他文章不同,我把相同的表情都放在了同一个文件夹下面,所以需要导入os模块 import asyncio import aiohttp from lxml imp

python爬虫从入门到放弃(九)之 实例爬取上海高级人民法院网开庭公告数据

原文地址https://www.cnblogs.com/zhaof/p/6959012.html 通过前面的文章已经学习了基本的爬虫知识,通过这个例子进行一下练习,毕竟前面文章的知识点只是一个 一个单独的散知识点,需要通过实际的例子进行融合 分析网站 其实爬虫最重要的是前面的分析网站,只有对要爬取的数据页面分析清楚,才能更方便后面爬取数据 目标站和目标数据目标地址:http://www.hshfy.sh.cn/shfy/gweb/ktgg_search.jsp目标数据:目标地址页面的中间的案开庭

Python_爬虫_百度图片

百度图片有些有编码问题,暂时不能爬取,多试几个 #思路:抓取图片地址,根据地址转存图片(注意名称):难点:转码 # -*- coding:utf-8 -*- from urllib import request,error import json,re # for page in range(4): # url = "http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=

Python_爬虫_数据解析回顾

--数据解析原理 --定位标签 --提取标签中存储的数据 --xpath解析原理 --实例化一个etree的对象且将解析的页面源码数据加载到该对象中 --通过xpath方法(返回值:列表)结合者xpath表达式进行数据解析 -- //tagName -- //tagName[@attr = 'value'] -- //tagName[index] -- /text() //text() -- /@attrName --bs4解析原理 --实例化一个bs4的对象且将解析的页面源码数据加载到该对象中

mobilebone.js-mobile移动web APP单页切换骨架

昨天看到张鑫旭前辈发了一条微博,便互动了下,是他的一个开源移动端框架,没事看看,这是效果