精华内容
下载资源
问答
  • 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 一个简单的Python资讯采集案例,列表页到详情页,到数据保存,保存为txt文档,网站网页结构...
  • APP爬虫之央视新闻

    2020-06-05 11:30:14
    目标:爬取央视新闻2020年一月份的所有新闻数据 需求:首先除了基本pycharm配置之外,你还需要一步手机或者一模拟器(这里使用落电模拟器),以及用于抓包的工具(我使用的是fiddle) 打开你安装好的央视新闻APP和我...

    目标:爬取央视新闻2020年一月份的所有新闻数据

    需求:首先除了基本pycharm配置之外,你还需要一步手机或者一模拟器(这里使用雷电模拟器),以及用于抓包的工具(我使用的是fiddle)

    打开你安装好的央视新闻APP和我的fiddle(记得配置好fiddle和雷电)
    在这里插入图片描述
    选择要爬取的时间链,我选择了1月1日的

    往fiddle找找找,找到了新闻的的标题和新闻的url位置:
    在这里插入图片描述
    在这里插入图片描述
    央视新闻往下拉,刷新新闻,继续得到所要请求的网址,再更改时间链,找找找,找网址
    在这里插入图片描述
    我们会发现以上两个会改变的地方,可以猜到p就是页(肯定),putData就是发布时间(可能是,先做猜测),复制一份到百度时间戳转换下就验证了猜测

    所以我们要对它们进行构建,你们可以尝试去构建时间戳,这里就不演示了因为仔细一裘你会发现这分明就是个等差数列。

    仔细瞅瞅代码:

    import requests
    from time import sleep
    
    url = 'http://api.cportal.cctv.com/api/rest/articleInfo/getScrollList'
    headers = {
        你的headers
    }
    
    
    def get_params(pg, pub_date):
        return {
            'n': '20',    
            'version': '1',
            'p': pg,
            'pubDate': pub_date,
        }
    
    
    page = 0
    time_stamp = 1577875564000
    count = 0      # 用来计算天数,如果超过31天就是2月份了,我没有去分析跨月份的规律是不是也是这样
    while True:
        page += 1
        response = requests.get(url, params=get_params(page, time_stamp), headers=headers)
        result = response.json()['itemList']
        # print(result)
        if result:
            for data in result:
                news_url = data['detailUrl']
                news_title = data['itemTitle']
                print(news_title + '\t' + news_url)
        if len(result) == 0:
            page = 0
            time_stamp += 86464000
            count += 1
        sleep(2)
        if count > 31:      
            break
    

    在这里插入图片描述
    如有疑问,请在下方留言

    展开全文
  • 新闻数据爬虫分析

    2017-07-14 14:55:00
    引言 最近接触到一个新闻类网站的数据爬取项目,包括各大新闻网站,如网易、腾讯、新浪等新闻标题、时间、评论数、点赞量、转发量以及阅读量等数据获取。其中较麻烦模块主要是动态...爬虫工具 新闻网站格式分析及数...

    引言

    最近接触到一个新闻类网站的数据爬取项目,包括各大新闻网站,如网易、腾讯、新浪等新闻标题、时间、评论数、点赞量、转发量以及阅读量等数据获取。其中较麻烦模块主要是动态数据的获取,以及新浪微博数据的获取,在此分享一些经验给大家参考,如有不对望指正交流、共同进步。

    爬虫工具

    新闻网站格式分析及数据获取

    网易新闻

    腾讯新闻

    新浪新闻

    搜狐新闻

    凤凰网

    21CN

    奥一网

    新浪微博

    详细内容请转本人博客地址(老是提示我存在敏感词。。。。。。郁闷)

    转载于:https://my.oschina.net/u/1580214/blog/1377455

    展开全文
  • Python爬虫实战教程:爬取网易新闻

    千次阅读 2019-12-07 14:53:51
    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者: Amauri PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 ...

    前言

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

    作者: Amauri

    PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

    python免费学习资料以及群交流解答点击即可加入


    此文属于入门级级别的爬虫,老司机们就不用看了。

    本次主要是爬取网易新闻,包括新闻标题、作者、来源、发布时间、新闻正文。

    首先我们打开163的网站,我们随意选择一个分类,这里我选的分类是国内新闻。然后鼠标右键点击查看源代码,发现源代码中并没有页面正中的新闻列表。这说明此网页采用的是异步的方式。也就是通过api接口获取的数据。

    那么确认了之后可以使用F12打开谷歌浏览器的控制台,点击Network,我们一直往下拉,发现右侧出现了:"... special/00804KVA/cm_guonei_03.js? .... "之类的地址,点开Response发现正是我们要找的api接口。
    在这里插入图片描述
    可以看到这些接口的地址都有一定的规律:“cm_guonei_03.js”、 “cm_guonei_04.js”,那么就很明显了:

    http://temp.163.com/special/0...*).js
    

    上面的连接也就是我们本次抓取所要请求的地址。

    接下来只需要用到的python的两个库:

    • requests
    • json
    • BeautifulSoup

    requests库就是用来进行网络请求的,说白了就是模拟浏览器来获取资源。

    由于我们采集的是api接口,它的格式为json,所以要用到json库来解析。BeautifulSoup是用来解析html文档的,可以很方便的帮我们获取指定div的内容。

    下面开始编写我们爬虫:

    第一步先导入以上三个包:

    import json
    import requests
    from bs4 import BeautifulSoup
    

    接着我们定义一个获取指定页码内数据的方法:

    def get_page(page):
        url_temp = 'http://temp.163.com/special/00804KVA/cm_guonei_0{}.js'
        return_list = []
        for i in range(page):
            url = url_temp.format(i)
            response = requests.get(url)
            if response.status_code != 200:
                continue
            content = response.text  # 获取响应正文
            _content = formatContent(content)  # 格式化json字符串
            result = json.loads(_content)
            return_list.append(result)
        return return_list
    

    这样子就得到每个页码对应的内容列表:
    在这里插入图片描述
    之后通过分析数据可知下图圈出来的则是需要抓取的标题、发布时间以及新闻内容页面。
    在这里插入图片描述
    既然现在已经获取到了内容页的url,那么接下来开始抓取新闻正文。

    在抓取正文之前要先分析一下正文的html页面,找到正文、作者、来源在html文档中的位置。

    我们看到文章来源在文档中的位置为:id = "ne_article_source" 的 a 标签
    作者位置为:class = "ep-editor" 的 span 标签
    正文位置为:class = "post_text" 的 div 标签

    下面试采集这三个内容的代码:

    def get_content(url):
        source = ''
        author = ''
        body = ''
        resp = requests.get(url)
        if resp.status_code == 200:
            body = resp.text
            bs4 = BeautifulSoup(body)
            source = bs4.find('a', id='ne_article_source').get_text()
            author = bs4.find('span', class_='ep-editor').get_text()
            body = bs4.find('div', class_='post_text').get_text()
        return source, author, body
    

    到此为止我们所要抓取的所有数据都已经采集了。

    那么接下来当然是把它们保存下来,为了方便我直接采取文本的形式来保存。下面是最终的结果:
    在这里插入图片描述
    格式为json字符串,“标题” : [ ‘日期’, ‘url’, ‘来源’, ‘作者’, ‘正文’ ]。

    要注意的是目前实现的方式是完全同步的,线性的方式,存在的问题就是采集会非常慢。主要延迟是在网络IO上,可以升级为异步IO,异步采集。

    展开全文
  • 版权:自主版权,开源 作者:tttk(网络芝麻) 开发语言:delphi 软件描述:利用蜘蛛算法到指定RSS站点抓取并下载新闻页面到本地,并过滤掉页面中所有无用信息,只保留新闻页面的主干,图片下载到本地,并修改图片...
  • 这篇文章能够快速教你爬取新浪新闻。希望这篇文章对您有所帮助!...专栏链接:快速入门之爬虫 1、网页加载模式 动态网页 动态网页不同于传统的静态网页,如果想用传统的方式爬取,会出错的。.

    本文由 简悦 SimpRead 转码, 原文地址 bbs.huaweicloud.com

    这篇文章能够快速教你爬取新浪新闻。希望这篇文章对您有所帮助!如果您有想学习的知识或建议,可以给作者留言~ 如何快速爬取新浪新闻并保存到本地 一…

    这篇文章能够快速教你爬取新浪新闻。希望这篇文章对您有所帮助!如果您有想学习的知识或建议,可以给作者留言~



    1、网页加载模式

    • 动态网页


    动态网页不同于传统的静态网页,如果想用传统的方式爬取,会出错的。

    • 静态网页


    上图为传统的静态网页。

    2、网页结构

    列表页 - 详情页

    API 遍历

    1、找到 API

    • 使用开发人员工具 - network 模块找到 API
    • API:https://feed.mix.sina.com.cn/api/roll/get?pageid=153&lid=2509&k=&num=50&page=1&r=0.7210316507361691&callback=jQuery1112011987950839178185_1585738993071&_=1585738993083

    2、分析关键 API 参数

    • Pageid:应该是新浪 API 列表列表的分配参数
    • Num:每页的新闻数。可以通过修改这个参数
    • Page:新闻列表的翻页数。可以通过修改这个参数来遍历

    3、根据 API 参数设计爬虫逻辑

    • 先使用 APII 遍历新闻 URL
    • 然后根据新闻 URL 获取详细页,抽取我们想要的数据

    4、测试使用

    1、尝试获取动态网页

    import requests
    print(requests.get("https://feed.mix.sina.com.cn/api/roll/get?pageid=153&lid=2509&k=&num=50&page=1&r=0.7210316507361691&callback=jQuery1112011987950839178185_1585738993071&_=1585738993083").content.decode("utf-8"))
    
      
    
    


    首先我们看到 URL 链接和得到的结果有重叠的地方,我们可以尝试精简下 URL 链接,同时由于格式本身为”utf-8“我们可以把格式换成”unicode_escape“

    这样我们就能得到想要的模块。

    我么可以用json.loads()获取字符串

    import requests
    import json
    print(json.loads(requests.get("https://feed.mix.sina.com.cn/api/roll/get?pageid=153&lid=2509&k=&num=50&page=1&r=0.7210316507361691").content))
    
      
    
    

    2、观察 URL

    https://feed.mix.sina.com.cn/api/roll/get?pageid=153&lid=2509&k=&num=50&page=1&r=0.7210316507361691
    
      
    
    

    在这时我们可能会用到时间戳这样一个在线工具:
    地址:https://tool.lu/timestamp/

    上图红框处,通过进行测试发现:
    num控制页面的整体内容
    page显示的是分页的内容
    我们先进行如下图的测试
    得到结果如下:

    这时我们查找 ctime 的数值并通过时间戳转换处时间:

    下面代码为重点

    3、程序

    3.1、导入所需要的包

    import codecs 
    from pybloom_live import ScalableBloomFilter 
    import requests 
    import json 
    from bs4 import BeautifulSoup as bs 
    from lxml import etree 
    import re 
    
      
    
    

    3.2、编写抽取模块

    1、使用 BeautifulSoup,编写抽取模块 编写一个函数,函数功能是通过传入的 URL 参数,利用 BeautifulSoup 获取详情页面中的新闻标题、内容、来源、时间等信息。

    def getdetailpagebybs(url): detail = {} 
    
    
      
    
    

    2、使用 lxml,编写抽取模块 编写一个函数,使用 lxml 进行抽取的模块,使用 xpath 方法,来抽取详情页面中的新闻标题、内容、来源、时间等信息。

    def getdetailpagebylxml(url): detail={} 
    
    
      
    
    

    3.3、编写存储模块

    编写一个函数,使用 codecs 包,将抽取后的信息存入到指定位置的文件中

    def savenews(data,new): fp = codecs.open('.\\sinaNews\\'+new+'.txt', 'a+', 'utf-8') fp.write(json.dumps(data, ensure_ascii=False)) fp.close()
    
      
    
    

    3.4、编写爬虫主题

    利用以上编写好的两个模块,运行爬虫

    1、设置全局变量

    urlbloomfilter=ScalableBloomFilter(initial_capacity=100, error_rate=0.001, mode=ScalableBloomFilter.LARGE_SET_GROWTH)
    page = 1 
    error_url=set() 
    
      
    
    

    2、获取 URL

    • 获取 URL 由于本案例中的新浪新闻网页
      是动态网页,所以不能直接对此网页进行爬取。需要通过开发者工具,查看该网页的 NetWork,找到该网页的 API 接口 URL,并以此作为初始 URL 进行爬取。通过拼接参数’page’来控制爬取页数。
    • 使用循环控制爬虫,并调用之前编写好的抽取模块和存储模块,运行爬虫
    1、使用 BeautifulSoup 抽取模块和存储模块
    while page <= 1: 
    
      
    
    
    2、使用 lxml 抽取模块和存储模块
    while page <= 1: 
    
      
    
    
    import codecs 
    from pybloom_live import ScalableBloomFilter 
    import requests 
    import json 
    from bs4 import BeautifulSoup as bs 
    import re 
    
    
    def getdetailpagebybs(url): detail = {}  
    
    
    def savenews(data,new): fp = codecs.open('D:/sinaNews/'+new+'.txt', 'a+', 'utf-8') fp.write(json.dumps(data, ensure_ascii=False)) fp.close()
    
    
    urlbloomfilter=ScalableBloomFilter(initial_capacity=100, error_rate=0.001, mode=ScalableBloomFilter.LARGE_SET_GROWTH)
    page = 1 
    error_url=set() 
    
    
    while page <= 10: 
      
    
    

    结果如下:



    各位路过的朋友,如果觉得可以学到些什么的话,点个赞再走吧,欢迎各位路过的大佬评论,指正错误,也欢迎有问题的小伙伴评论留言,私信。每个小伙伴的关注都是本人更新博客的动力!!!

    文章来源: buwenbuhuo.blog.csdn.net,作者:不温卜火,版权归原作者所有,如需转载,请联系作者。

    原文链接:buwenbuhuo.blog.csdn.net/article/details/105253382

    【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

    展开全文
  • 本文的文字及图片来源于网络,仅供学习、交流使用,...这个实战例子是构建一个大规模的异步新闻爬虫,但要分几步走,从简单到复杂,循序渐进的来构建这个Python爬虫 本教程所有代码以Python 3.6实现,不兼顾Python 2,强
  • 因此今天以新浪新闻为例,分析如何通过Python爬虫按关键词抓取相关的新闻。 首先,如果从新闻直接进行搜索,你会发现其内容最多显示20页,因此我们要从新浪的首页进行搜索,这样才没有页数的限制。 网页结构...
  • Python爬虫实战案例:爬取新闻资讯

    千次阅读 2020-07-11 21:54:22
    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 一个简单的Python资讯采集案例,列表页到详情页,到数据保存,保存为txt文档,网站网页...
  • 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:Yolandarrrrr ( 想要学习Python?Python学习交流群:1039649593...
  • 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
  • 一般某一个网站的新闻页面,标题,作者,日期这几个一般肯定是固定格式的,意思就是同一个网站的新闻“标题”,“作者”都会放在固定html标签里,且标签的class或者id都是有理可依的,而新闻内容一般也会放到一个...
  • <meta name="author" content="chinanews" />...中国新闻网</a></span> <span id="author_baidu">作者:李玉素</span> <span id="editor_baidu">责任编辑:李玉素</span>
  • 二、爬虫原理 2.1网络爬虫的类型 2.2网络爬虫的使用要求 2.3 Scrapy框架工作流程 三、常用爬虫框架比较 四、数据爬取(腾讯招聘岗位数据) 4.1模型建立 4.2基于Scrapy的腾讯招聘网站爬虫实现 4.3...
  • 也就是说,爬虫可以自动化浏览网络中的信息,当然浏览信息的时候需要按照我们制定的规则进行,这些规则我们称之为网络爬虫算法。而Python可以很方便地编写出爬虫程序,进行互联网信息的自动化检索。 搜索引擎离不开...
  • 最近在 GitHub 发现了一个爬虫库,这个库整理了**所有中国大陆爬虫开发者涉诉与违规相关的新闻、资料与法律法规。** 该项目库用来整理所有中国大陆爬虫开发者涉诉与违规相关的新闻、资料与法律法规。致力于帮助在...
  • Python爬虫笔记1-爬虫背景了解

    千次阅读 2019-02-07 07:52:34
    学习python爬虫的背景了解。 大数据时代数据获取方式 如今,人类社会已经进入了大数据时代,数据已经成为必不可少的部分,可见数据的获取非常重要,而数据的获取的方式大概有下面几种。 企业生产的数据,大型互联网...
  • 所以我打算写一篇博客,讲一下“爬虫工程师”的工作内容是什么,需要掌握哪些技能,难点和好玩的地方等等,讲到哪里算哪里吧。 一、爬虫工程师是干嘛的? 1.主要工作内容? 互联网是由一个一个的超链接组成的,从...
  • 网络爬虫

    千次阅读 2019-05-22 15:33:49
    此时可以利用网络爬虫,将这多个新闻网站中的新闻信息爬取下来,集中进行阅读。 有时,我们在浏览网页上的信息的时候,会发现有很多广告。此时同样可以利用爬虫将对应网页上的信息爬取过来,这样就可以自动的过滤...
  • 前言 文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,...我们以财经分栏为例,这里我们观察网页源码可以看到这些新闻的排布都是放在一个无序列表中,每一条新闻都是一个li,那么我们只要获取了所...
  • 爬虫是否违法

    千次阅读 2019-11-14 13:25:34
    爬虫究竟是否违法 前言: 9月份参加一个某银行的数据相关岗位面试的时候,面试官直接问道:你之前的实习经历中有一段这个爬虫实习生的经历,能简单的说一下你对这个爬虫数据的看法,当时回答技术肯定没有问题的,想...
  • 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:AirPython PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取...
  • 网络爬虫是否合法

    2020-02-21 14:46:23
    网络爬虫合法吗? 网络爬虫领域目前还属于早期的拓荒阶段,虽然互联网世界已经通过自身的协议建立起一定的道德规范(Robots协议),但法律部分还在建立和完善中。从目前的情况来看,如果抓取的数据属于个人使用或...
  • 今日头条文章爬虫实战

    千次阅读 2019-02-27 15:38:15
    原 java爬虫系列 今日头条文章爬虫实战 置顶 2018年03月26日 16:55:31 Mr_OOO 阅读数:3868更多 &lt;div class="...
  • 爬虫合法性讨论

    千次阅读 2020-06-15 08:26:18
    然而在繁荣的表象背后,也往往暗藏杀机 —— 2019年末「 程序员因写爬虫而被刑侦 」的新闻消息甚嚣尘上: 大量数据公司被抓,几十家被列入调查名单 51信用卡被查 祸起爬虫抓取数据被某银行举报? 爬虫...
  • 所以我打算写一篇博客,讲一下“爬虫工程师”的工作内容是什么,需要掌握哪些技能,难点和好玩的地方等等,讲到哪里算哪里吧。 一、爬虫工程师是干嘛的? 1.主要工作内容? 互联网是由一个一个的超链接组成的,从一...
  • 本项目用来整理所有中国大陆爬虫开发者涉诉与违规相关的新闻、资料与法律法规。致力于帮助在中国大陆工作的爬虫开发者以及数据行业相关从业者了解我国相关法律,避免触碰数据合规红线。 违法违规案例汇总 爬虫禁区1...
  • 中国爬虫违法违规案例汇总!

    千次阅读 多人点赞 2019-11-24 17:11:00
    最近在GitHub 发现了一个爬虫库,这个库整理了所有中国大陆爬虫开发者涉诉与违规相关的新闻、资料与法律法规。GitHub 地址:https://github.com/...
  • 020 爬虫

    2021-03-12 15:14:28
    Python 爬虫

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,279
精华内容 511
关键字:

新闻爬虫版权

爬虫 订阅